群関数解の無効な使用
グループ関数の無効な使用は、セット関数の無効な使用を意味します。
間違った文の例 SELECT sname AS '優秀学生名',AVG(score) AS '平均評点平均' FROM `grade_info` WHERE AVG(score)>90 GROUP BY sno;
正しい書き方 SELECT sname AS '優秀学生名',AVG(score) AS '平均評点平均' FROM `grade_info` GROUP BY sno HAVG(score) > 90 ;
説明
<ブロッククオートGROUP BYは、その名の通り、...でグループ化することです。SQLでよく使われる、フィールドをグループ化し(指定したフィールドが同じであればグループとなる)、そのグループに対して関連する操作を行うためのグループ化
WHEREとHAVINGの違いは、以下の通りです。
<ブロッククオート <ブロッククオート<スパン where節の機能は クエリ結果をグループ化する前に を使用して、Where 条件にマッチしない行を削除する、つまり、グループ化する前にデータをフィルタリングします。 where 条件にクラスタリング関数を含めることはできません。 特定の行をフィルタリングするためにWhere条件を使用します。
<ブロッククオート <ブロッククオートhaving節の機能は、条件を満たすグループをフィルタリングすることである。 グループ化した後のデータをフィルタリングする。多くの場合、条件にクラスタリング関数を使用する。 に対するhaving conditionの使用。 特定のグループをフィルタリングするために また、グループ化には複数のグループ化基準を使用することができます。
<ブロッククオートサンプルのエラー句の問題は、WHERE句でset関数が使われていることです。
<ブロッククオートもう一つ、注意すべきは SQL の構文があります。
SELECT [DISTINCT|DISINCTROW|ALL] select_expression,... -- クエリーの結果
[FROM table_references -- クエリの対象となるテーブルを指定します。
[WHERE where_definition] -- where節、クエリデータのフィルタです。
[GROUP BY col_name,...] -- クエリ結果(where句にマッチするもの)をグループ化する。
[HAVING where_definition] -- グループ化された結果に対して条件分岐を行う。
[ORDER BY{unsigned_integer|col_name|formula}」となります。[asc|desc],...]である。-- クエリ結果をソートする
[LIMIT [オフセット,] 行数]。-- クエリの表示行数を制限する
[PROCEDURE procedure_name] -- クエリプロシージャから返される結果セットデータ
]
<スパン
クエリ文は、上記の順序で記述する必要があります。
関連
-
MySQLのLike演算子に関する詳細
-
MySQL演算子(and, or, in, not)の具体的な使用方法
-
SQL集計、グループ化、ソート
-
MySQLインデックスベースストレステストの実装
-
MySQL インタビューの質問 - ハッシュインデックスを設定する方法
-
mysqlインデックスが長すぎる特殊なキーが長すぎる解決策
-
Mysqlのソート機能の詳細
-
[解決済み】マルチパート識別子をバインドできませんでした。
-
SQL Server のトランザクションは、try キャッチに記述しなければ、中間ステートメントがエラーを報告してもコミットされます。
-
msql クエリでのエラー 'where 節' の不明な列 'yellow fruit'
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
面接では選択式で聞かれましたが......。.for updateはテーブルをロックするか、行をロックするか?
-
MySQLインストールチュートリアル(Linux版
-
[解決済み】MySQL - オペランドは1つのカラムを含む必要があります。
-
[解決済み】MySQLで「すべての派生テーブルは独自のエイリアスを持つ必要があります」というエラーは何ですか?
-
[解決済み】文字列からuniqueidentifierに変換する際に変換に失敗する - 2つのGUIDの場合
-
[解決済み】SQLサーバーのテンポラリーテーブルで「すでに名前のついたオブジェクトがあります」エラーが発生する。
-
mysql5.7のインストールと、無料・長期利用を目的としたNavicateの導入プロセスについて
-
Mysql がエラー 1241 を報告 オペランドは 1 つのカラムを含む必要があります。
-
SQLException。オペランドは1列でなければなりません。
-
mysql がエラーを報告します。不明な文字セットです。'utf8mb4'