sql выберите 5 самых высоких значений

Я пытаюсь выбрать 5 строк с самым высоким count значение

Это мой запрос:

string sql = "SELECT   top 5  count FROM  Likes  ORDER BY COUNT(*) DESC";

Это просто бросает код ошибки, который

Столбец Likes.count недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY.

Это для проекта, который я должен представить завтра... введите описание изображения здесь

3 ответа

Решение

На SQL Server просто сделайте это:

 SELECT TOP 5 * FROM Likes ORDER BY [Count] DESC

Это предполагает, что ваш Likes-таблица уже содержит столбец с именем [Count] Это означает, что вам не нужно считать записи самостоятельно (вот что COUNT(*) делает).

Вы не должны использовать COUNT(*) здесь для order by,

SELECT   top 5  [count] FROM  Likes  ORDER BY [Count] DESC

count это зарезервированное слово, поэтому вы должны избегать использования их для имен столбцов. Если вы не хотите переименовывать столбец, вы можете избежать его, разные dbms могут повлиять на то, кто вы это делаете. В ssms вы бы использовали квадратные скобки.

string sql = "SELECT   top 5  [count] FROM  Likes  ORDER BY COUNT(*) DESC";
Другие вопросы по тегам