我有下表:
Table
+----+------+-------+
| ID | Name | Group |
+----+------+-------+
| 0 | a | 1 |
| 1 | a | 1 |
| 2 | a | 2 |
| 3 | a | 1 |
| 4 | b | 1 |
| 5 | b | 2 |
| 6 | b | 1 |
| 7 | c | 2 |
| 8 | c | 2 |
| 9 | c | 1 |
+----+------+-------+
Run Code Online (Sandbox Code Playgroud)
我想从该组中最常用名称排序的特定组中选择前20个不同的名称.对于组1的该示例的结果将返回a b c(a-3次出现,b-2次出现和c-1次出现).
谢谢.
Mar*_*ers 13
SELECT TOP(20) [Name], Count(*) FROM Table
WHERE [Group] = 1
GROUP BY [Name]
ORDER BY Count(*) DESC
Run Code Online (Sandbox Code Playgroud)
SELECT Top(20)
name, group, count(*) as occurences
FROM yourtable
GROUP BY name, group
ORDER BY count(*) desc
Run Code Online (Sandbox Code Playgroud)