• 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.[クラス];
    
  • 2
    hideki 2021/11/20 (土) 22:28:53 7cbc1@96514

    ご丁寧にありがとうございました。
    最初の方法でやります。スキルがないので。