У меня есть таблица, которая имеет метки и некоторые коды рядом с ними:SQL выбрать верхние счетчики для сгруппированных строк
id | label | code
1 | foo | 21
2 | foo | 33
3 | foo | 33
4 | foo | 13
5 | foo | 13
6 | foo | 33
7 | bar | 13
8 | bar | 13
9 | bar | 33
10 | smt | 33
11 | smt | 13
Я нужен запрос, который выбирает верхние частоты «Код» для каждой «этикетки» , Вот то, что я до сих пор:
SELECT count(*) frequency, label, code
FROM myTable
GROUP BY label, code
Это дает мне:
frequency | label | code
1 | foo | 21
3 | foo | 33
2 | foo | 13
2 | bar | 13
1 | bar | 33
1 | smt | 33
1 | smt | 13
То, что я хотел бы, хотя это:
frequency | label | code
3 | foo | 33
2 | bar | 13
1 | smt | 33
1 | smt | 13
Как вы можете видеть только верхние частоты выбраны для 'foo' и 'bar'. Поскольку «smt» не имеет максимальной частоты как таковой (все одинаковы), все строки включены.
У меня нет идеи, даже с чего начать. Кто-нибудь может помочь? Благодарю. (Я использую MSSQL, кстати)
благодарит за лучшее решение для моих нужд :) –