返回SQL Query中的最高计数值

时间:2016-03-20 22:04:55

标签: sql count

我有一个名为ClassWithTest的表,它列出了已分配给类的所有测试。见下文:

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 个答案:

答案 0 :(得分:1)

您可以使用order by以及获取第一行的方式执行此操作。 ANSI SQL是:

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

在MySQL和SQLite中,您将使用LIMIT 1而不是FETCH子句。在SQL Server中,您将使用SELECT TOP 1而不是FETCH子句。