[解決済み] SQLで複数のGROUP BYを使用する場合とは?
2022-02-08 10:27:19
質問
SQLZOOでSQLを練習しているのですが、Joinをやっています。その中の質問11で、"「POL」が関与するすべての試合について、matchid、日付、得点数を表示せよ、という質問があります。
そこで、次のようなコードを試してみました。
SELECT matchid, mdate, COUNT(player)
FROM goal JOIN game ON matchid = id
WHERE (team1 = 'POL' OR team2 = 'POL')
GROUP BY matchid
しかし、エラーを投げます。
'gisq.game.mdate' が GROUP BY に含まれていません。
ということは、答えは
SELECT matchid, mdate, COUNT(player)
FROM goal JOIN game ON matchid = id
WHERE (team1 = 'POL' OR team2 = 'POL')
GROUP BY matchid, mdate
質問ですが、集計関数の一部ではないのに、なぜGROUP BY句にmdateも含める必要があるのでしょうか?ありがとうございます、そして初心者の質問ですみません。以下はテーブルの書式です。 https://sqlzoo.net/wiki/The_JOIN_operation
解決方法は?
クエリの SELECT 部分で集約および集約関数(COUNT、MAX、MIN、AVG など)を直接(集約されていない)列とともに使用する場合、クエリの GROUP BY 部分で SELECT 部分から集約されていないすべての列を繰り返すことが必須となります。結果として、そしてこれが要求されていることです。 すべてのカラムが集約される そのうちのいくつかはクエリの SELECT 部分で集約関数によって、残りは GROUP BY 句で集約されます。
関連
-
[解決済み】一括読み込みデータ変換エラー(切り捨て)
-
[解決済み] Presto SQL ピボッティング(言葉は悪いですが)データ
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] SQL ServerにおけるLEFT JOINとLEFT OUTER JOINの比較
-
[解決済み] SQLのSELECTでIF...THENを実行するにはどうすればよいですか?
-
[解決済み] SQL Server - 挿入された行のIDを取得するための最良の方法は?
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】CREATE VIEW は、バッチ内の唯一のステートメントでなければなりません。
-
[解決済み】Postgresのエラー。式として使用されるサブクエリによって返される複数の行
-
[解決済み】SQL ServerでIdentityカラムを更新する方法は?
-
[解決済み] テスト
-
[解決済み] SQL Server サブクエリが 1 つ以上の値を返しました。これは、サブクエリが =, !=, <, <= , >, >= のように続く場合は許可されません。
-
[解決済み] ORA-01779: キーが保存されていないテーブルにマップされる列を変更できません。
-
[解決済み] Oracle(LiveSQL)のSQL [重複]について
-
[解決済み] マルチパート識別子をバインドできなかった
-
[解決済み] 1行目4列目(年)の一括読み込みデータ変換エラー(型の不一致または指定したコードページに対して無効な文字)
-
[解決済み】列が集約関数またはGROUP BY句のいずれにも含まれていないため、選択リストでは無効である理由【重複