2016-03-20 11 views
2

私はクラスに割り当てられたすべてのテストをリストするClassWithTestというテーブルを持っています。以下を参照してください:SQLクエリの最高カウント値を返す

ClassNum TestCode 
111  EngTest 
111  MatTest 
111  SciTest 
111  GerTest 
222  TecTest 
333  HisTest 
333  LonTest 
333  CodTest 
333  SpaTest 
333  SwmTest 

ここで、最もテストが必要なクラスを返すクエリを実行します。私はすでにそれに取り組んで始めましたし、これまでのところ、私は、この生成しました:

SELECT ClassNum, COUNT(testCode) 
FROM ClassWithTest 
GROUP BY ClassNum; 

をそれは、この結果を返します:

ClassNum TestCode 
111  4 
222  1 
333  5 

私が持っている問題は、私はその上でちょうどClassNum 333を返すようにしたいですそれ自身が、最も多くのテストを受けるクラスです。誰が私がこれをどうやってできるか知っていますか?

答えて

1

これはorder byと最初の行を取得する方法を使用して行うことができます。 ANSI SQLは次のとおりです。MySQLとSQLiteのでは、あなたがFETCH句の代わりにLIMIT 1を使用することになり

SELECT ClassNum 
FROM ClassWithTest 
GROUP BY ClassNum 
ORDER BY COUNT(testCode) DESC 
FETCH FIRST 1 ROW ONLY; 

。 SQL Serverでは、FETCH句の代わりにSELECT TOP 1を使用します。

+0

ありがとうございましたGordon Linoff、それは動作します!私はそのFETCH節を認識していませんでした。これらの有用な条項を記載したウェブサイトを知っていますか?もう一度、助けてくれてありがとう。 – mrteeth

+0

@mrteeth。 。 。どのデータベースを使用していても、そのバージョンのSQLにはかなり良いドキュメントがあります。 –

+0

ゴードン、あなたのプロフィールを見て、私はあなたの本をアマゾンのウィッシュリストで購入したことに気付きました。 :D – mrteeth

関連する問題