ID UserID LevelID
1 1 1
2 1 2
3 1 2
4 1 2
5 2 1
6 2 3
7 3 2
8 4 1
9 4 1
查询应返回:levelid:1(3次)-不同用户(userid)最常重复的levelid列。
我有以下疑问:
SELECT LevelID, COUNT(LevelID) AS 'Occurrence'
FROM
(
SELECT DISTINCT * FROM
(
SELECT UserID, LevelID
FROM SampleTable
) cv
) levels
GROUP BY LevelID
ORDER BY 'Occurrence' DESC
返回:
LevelID Occurence
1 3
2 2
3 1
但我不能补充 LIMIT 1;
在底部检索所选内容的第一行。查询有什么问题?
1条答案
按热度按时间ffdz8vbo1#
不需要这几个层次的嵌套。考虑使用聚合,
count(distinct ...)
,对结果进行排序,并使用行限制子句仅保留顶部记录:如果您想允许可能的顶部领带,那么使用
top (1) with ties
而不仅仅是top (1)
.