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ランキング
-
下記の問合せを行うクエリを、P...
-
Accessでデータシートに同じデ...
-
お金持ちのテーブル
-
SELECT 文の NULL列は?
-
一つ前に戻るには…
-
update文で改行を入れる
-
DBからタブ区切りのCSVデータを...
-
テーブルで一番古いレコードだ...
-
Accessのテーブルデータを一気...
-
2つのテーブルで引き算 postgres
-
UPDATE文
-
複数テーブルにわたるCOUNT
-
SQL、2つのテーブルで条件一致...
-
テーブル名をカラムとして取得...
-
ちょっとぐらいの時間なら里山...
-
javaでデータベース上のテーブ...
-
SQL*LoaderでCSVから指定した列...
-
複雑なSQL文について
-
SQliteの日付検索について
-
Oracle(オラクル)で、日付時刻...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLです。こんな感じですか?あ...
-
うまくいきません教えてくださ...
-
下記の問合せを行うクエリを、P...
-
下記の問合せを行うクエリを、P...
-
accessで在庫管理
-
サブクエリを使用せずにLEFT JO...
-
現在庫算出方法についてお教え...
-
SQLの作成方法
-
update文におけるwhereとjoinの...
-
access結合クエリを編集可能に
-
Access 出荷管理簿を作りたい...
-
SQL CASE文に制御について
-
グループごとの最高得点者一覧...
-
相関サブクエリの中で、グルー...
-
Accessでデータシートに同じデ...
-
SELECT 文の NULL列は?
-
テーブル名をカラムとして取得...
-
SQL、2つのテーブルで条件一致...
-
update文で改行を入れる
-
一つ前に戻るには…
おすすめ情報