MySQLで、グループごとの最高得点者一覧を取得する方法を教えてください。
例えば、「生徒番号」「学年」「組」「成績」というカラムを持ったテーブルがあるとき、各クラス (「学年」と「組」のペア) から一人ずつ、最高得点を取得した生徒の「生徒番号」と「成績」を取得しようとしています。このとき「生徒番号」は一意ですが、「成績」は一意とは限りません。
また、同じクラスで最高得点者が二人以上いる場合、すべて取得か条件を指定して一人に絞るかを選べたらなおありがたいです。
【だめだった例】
SELECT 生徒番号, 成績
GROUP BY 学年, 組
ORDER BY 成績 DESC
⇒ 「GROUP BY 成績」なので「生徒番号」を SELECT できない
SELECT 生徒番号, 成績
GROUP BY 学年, 組
HAVING MAX(成績)
⇒ 同じく
SELECT 生徒番号, 成績
WHERE 成績 IN (
SELECT MAX(成績)
FROM テーブル
GROUP BY 学年, 組
)
⇒ 「成績」は一意ではないので、余分な行 (他のクラスで成績が同じ者) が取得される
No.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 学年,組
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 第二回模試の3科目の各得点と合 1 2023/04/25 18:02
- MySQL 三科目合計点のクラス別平均点求めるクエリ式を教えてください 1 2023/07/04 09:44
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「名前(first name) 1 2023/06/24 13:03
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- 高校受験 身長187cmです。 公立中学校の成績についてです。 300人の学年で、定期テストは毎回トップ10に 1 2022/10/16 00:15
- 高校 高校2年生女子です。 来年の授業で何をとるか迷っています。 物理、化学、生物の3つの中から1つ取ろう 2 2022/06/07 20:55
- 野球 日本ハムの清宮選手に関して。 プロ5年目の一塁手として今年の成績はかなりヤバそうですが、来年に一軍と 3 2022/09/07 11:48
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 第二回模試の3科目の各得点と合 1 2023/04/24 01:33
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「A,B組の女子の氏名のよみ。 1 2023/05/16 15:28
- 中学校 登校拒否の生徒が試験の時だけ出てペーパーテストで高得点をとったとします 。 しかし成績は5段階評価で 4 2022/04/16 08:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLです。こんな感じですか?あ...
-
accessで在庫管理
-
うまくいきません教えてくださ...
-
update文で改行を入れる
-
一つ前に戻るには…
-
Accessでデータシートに同じデ...
-
テーブルリンク リンク元を知...
-
外部キーだけのテーブル(主キ...
-
Accessのテーブルデータを一気...
-
SELECT 文の NULL列は?
-
他のデータベースとのテーブル結合
-
SQL、2つのテーブルで条件一致...
-
Oracleで上書きImportはできま...
-
UPDATE文
-
テーブル名をカラムとして取得...
-
テーブルに存在しない列をselec...
-
論理名とコメント構文(?)について
-
男性と2人で飲食店に行きテーブ...
-
L2SWはARPテーブルを持っている?
-
MYSQLでコード番号を自動でつけ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLです。こんな感じですか?あ...
-
うまくいきません教えてくださ...
-
下記の問合せを行うクエリを、P...
-
下記の問合せを行うクエリを、P...
-
accessで在庫管理
-
サブクエリを使用せずにLEFT JO...
-
現在庫算出方法についてお教え...
-
SQL CASE文に制御について
-
access結合クエリを編集可能に
-
相関サブクエリの中で、グルー...
-
Access 出荷管理簿を作りたい...
-
SQLの作成方法
-
グループごとの最高得点者一覧...
-
update文におけるwhereとjoinの...
-
Accessでデータシートに同じデ...
-
SELECT 文の NULL列は?
-
テーブル名をカラムとして取得...
-
SQL、2つのテーブルで条件一致...
-
一つ前に戻るには…
-
update文で改行を入れる
おすすめ情報