sql select 5 个最高值

sql select 5 higest values

我正在尝试 select 具有最高 count 值的 5 行

这是我的查询:

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

它只是抛出一个错误代码

Column 'Likes.count' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

这是我明天要展示的项目...

在 SQL 服务器上,只需执行以下操作:

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

这假设您的 Likes-table 已经包含一个名为 [Count] 的列,这意味着您不需要自己计算记录(这就是 COUNT(*) )。

你不应该在这里为 order by 使用 COUNT(*)

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";