我有下表:
ID | NUM
1 | 4
2 | 9
3 | 1
4 | 7
5 | 10
我想要的结果是:
ID | NUM
5 | 10
当我尝试使用 MAX(NUM) 时,我收到错误消息,我必须使用 GROUP BY 才能使用 MAX 函数
有什么想法吗?
最佳答案
根据错误,如果选择列表中有任何非聚合列(在您的情况下,您正在尝试查找 MAX(Num)
,然后返回 ID
列中关联的值)。在 MS SQL Server 中,您可以通过排序和限制返回的行来获得您想要的内容:
SELECT TOP 1 ID, NUM
FROM [table]
ORDER BY NUM DESC;
在其他 RDBMS 系统中,LIMIT
提供类似的功能。
编辑
如果您需要返回具有相同最大值的所有行,请使用 WITH TIES
qualification :
SELECT TOP 1 WITH TIES ID, NUM
FROM [table]
ORDER BY NUM DESC;
关于sql - 不带分组依据的 MAX 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11073321/