SQL Select самые частые записи - PullRequest
5 голосов
/ 18 декабря 2009

У меня есть следующая таблица:

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   |
+----+------+-------+

Я хотел бы выбрать 20 лучших имен из определенной группы, упорядоченной по наиболее частым именам в этой группе. Результат для этого примера для группы 1 вернет a b c ( a - 3 случая, b - 2 случая и c - 1 появления).

Спасибо.

Ответы [ 3 ]

13 голосов
/ 18 декабря 2009
SELECT TOP(20) [Name], Count(*) FROM Table
WHERE [Group] = 1
GROUP BY [Name]
ORDER BY Count(*) DESC
5 голосов
/ 18 декабря 2009
SELECT Top(20) 
   name, group, count(*) as occurences
FROM yourtable
GROUP BY name, group
ORDER BY count(*) desc
2 голосов
/ 18 декабря 2009
SELECT
    TOP 20
    Name,
    Group,
    COUNT(1) Count,
FROM
    MyTable
GROUP BY
    Name,
    Group
ORDER BY
    Count DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...