Microsoft Access 掲示板

クエリの抽出について / 1

2 コメント
views
4 フォロー
1

無理して一気にやろうとせずに、やりたいことを分解して、1つずつ実現するようにすればどうでしょう。

100点が1人だけのグループを抽出したい。

ということなので、まずは、グループ毎の100点の人数を取得するクエリを考えます。
下記のような集計クエリで取得できます。

画像1

結果は下記です。
画像1

このカウントが1のレコードを抽出したいのですから、カウントの抽出条件を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を結合すればご希望の結果になります。
画像1

クエリを一つに纏めたいなら、それぞれの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.[クラス];
通報 ...