- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:グループごとの最高得点者一覧を取得するには)
MySQLでグループごとの最高得点者一覧を取得する方法
このQ&Aのポイント
- MySQLを使用して、各クラスから最高得点を取得した生徒の「生徒番号」と「成績」を一意に取得する方法はありません。また、同じクラスで最高得点者が複数いる場合、すべて取得するか条件を指定して一人に絞るかを選ぶことができません。
- 例えば、テーブルには「生徒番号」「学年」「組」「成績」というカラムがあります。しかし、「生徒番号」は一意ですが「成績」は一意ではないため、GROUP BY句を使用すると「生徒番号」を選択することができません。
- さらに、HAVING句やサブクエリを使用しても同じ結果が得られます。成績が同じ生徒が複数いる場合、余分な行が含まれる可能性があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
同率がいた場合列記する SELECT 生徒番号,MAIN.学年, MAIN.組,MAIN.成績 FROM 成績テーブル AS MAIN INNER JOIN ( SELECT 学年, 組,MAX(成績) AS 成績 FROM 成績テーブル GROUP BY 学年, 組 ) AS SUB USING(学年,組,成績) 一つだけ抽出する(たとえば生徒番号が若い方) SELECT MIN(生徒番号) AS 生徒番号,MAIN.学年, MAIN.組,MAIN.成績 FROM 成績テーブル AS MAIN INNER JOIN ( SELECT 学年, 組,MAX(成績) AS 成績 FROM 成績テーブル GROUP BY 学年, 組 ) AS SUB USING(学年,組,成績) GROUP BY 学年,組
お礼
大変参考になりました!ありがとうございました。