Получите все группы, у которых есть максимальное количество

Предположим теперь, что у меня есть таблица T, которая похожа на это:

A|B
1|1 
1|2 
2|1 
2|2 
2|3 
3|1 
3|2 
3|3 

С избранным A количество (*) от группы T мы должны добраться:

A|count(*)
1|2
2|3
3|3

Теперь я должен получить последние два ряда в предыдущем вопросе - у которых есть максимальное значение количество (*) . Как я могу сделать это в едином запросе?

Спасибо.

0
nl ja de

2 ответы

WITH recordList
AS
(
    SELECT  A, COUNT(*) totalCount,
            DENSE_RANK() OVER (ORDER BY COUNT(*) DESC) rn
    FROM    tableName
    GROUP BY A
)
SELECT  A, totalCount
FROM recordLIst
WHERE rn = 1
3
добавлено
посмотрите здесь для TSQL, оценивающий функцию, в основном DENSE_RANK у результата нет промежутков в рейтинге, но OP интересно по самому большому максимальному подсчету, таким образом, любой из этих двух сделает.
добавлено автор John Woo, источник
РАЗРЯД покажет промежутки в случае связей, DENSE_RANK не будет. В этом случае это не важно потому что we' ре только после первого разделения, таким образом, промежутки не возможны.
добавлено автор Aaron Bertrand, источник
каково различие между DENSE_RANK и РАЗРЯД ?
добавлено автор Walter, источник
;WITH a(A,C,R) AS
(
  SELECT A, COUNT(*), RANK() OVER (ORDER BY COUNT(*) DESC)
  FROM dbo.T GROUP BY A
)
SELECT A, C FROM a WHERE R = 1;
1
добавлено
+1 для рейтинга, вопросы, когда количество рядов неизвестны. C=count (*) еще более хороший для Синтаксического сахара:-)
добавлено автор bonCodigo, источник
SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)