• ベストアンサー

得点の上位2の平均値SQLは?

はじめまして。 参考書などでいろいろ調べてみたのですが、どうしても分からず 質問させて頂きます。 AccessでのSQL文が分からないのですが、ある成績表がありまして、 ひとり3回試験を行ったとき、上位2位の得点の平均を出したいのですが、 SQL文が分からず途方にくれております。 よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

こういう質問ではテーブルの情報が必須ですよ フィールド名等は適当に書いておきますからそちらのものに読み替えてくださいね 上位2つを取り出してから平均するということになりますが (クエリを2つ重ねることになります) ここで問題は同じ点数のときの扱いです テーブルには点数の他に試験回数のフィールドもあるのでしょうか それがあるのなら同じ点数の時には回数の小さい方を取る というようなことで処理が可能です 点数順、点数が同じときには試験回数順で順番を振り 順番の上位2を取り出すクエリを作り そのクエリから集計クエリを作ればいいですね 順位 DCount("*","テーブル名","(点数<" & 点数 & " or 点数=" & 点数 & " and 回数<=" & 回数 & ") and 生徒CD=" & 生徒CD) このフィールドの抽出条件欄に <3 とすれば生徒毎の上位2つの成績が得られます このクエリから集計クエリを作ってください

gyaman
質問者

お礼

ご回答頂きありがとうございました。おかげさまで解決いたしました。 質問の説明不足の点につきましたはご容赦ください。

関連するQ&A