hatena
hatena
2021/11/20 (土) 12:58:15
無理して一気にやろうとせずに、やりたいことを分解して、1つずつ実現するようにすればどうでしょう。
100点が1人だけのグループを抽出したい。
ということなので、まずは、グループ毎の100点の人数を取得するクエリを考えます。
下記のような集計クエリで取得できます。
結果は下記です。
このカウントが1のレコードを抽出したいのですから、カウントの抽出条件を1に設定します。
このクエリのSQL
SELECT MT_test.[クラス], Count(MT_test.点数) AS 点数のカウント
FROM MT_test
WHERE MT_test.点数=100
GROUP BY MT_test.[クラス]
HAVING Count(MT_test.点数)=1;
このクエリ(Q_100_1)とMT_testを結合すればご希望の結果になります。
クエリを一つに纏めたいなら、それぞれのSQLをサブクエリを使ってまとめて、整理すると下記のようなSQLになります。
SELECT
MT_test.[クラス], MT_test.点数
FROM
MT_test INNER JOIN
(SELECT [クラス]
FROM MT_test
WHERE 点数=100
GROUP BY [クラス]
HAVING Count(点数)=1
) AS Q1
ON MT_test.[クラス] = Q1.[クラス];
通報 ...