Вы хотите знать, с каким максимальным значением SMTHNG в таблице:
SELECT MAX(SMTHNG) FROM SomeTable;
Это агрегирование без GROUP BY
и, следовательно, в результате получается одна строка, содержащая максимальное значение SMTHNG.
Теперь вы также хотите знать, как часто встречается этот SMTHNG, и добавляете COUNT(MAX(SMTHNG))
.Это, однако, не работает, потому что вы не можете агрегировать агрегат напрямую.
Это тоже не работает:
SELECT ANY_VALUE(max_smthng), COUNT(*)
FROM (SELECT MAX(smthng) AS max_smthng FROM sometable) t;
, потому что подзапрос содержит только одну строку, поэтомуслишком поздно для подсчета.
Итак, либо используйте подзапрос и снова выберите из таблицы:
SELECT ANY_VALUE(smthng), COUNT(*)
FROM sometable
WHERE smthng = (SELECT MAX(smthng) FROM sometable);
Или подсчитайте по SMTHNG, прежде чем искать максимум.Вот как можно получить счет:
SELECT smthng, COUNT(*)
FROM sometable
GROUP BY smthng;
И самый простой способ получить максимум из этого результата:
SELECT TOP(1) smthng, COUNT(*)
FROM sometable
GROUP BY smthng
ORDER BY COUNT(*) DESC;