我有一个名为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,因为那个测试次数最多的类。有人知道我怎么做吗?
答案 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
子句。