我正在尝试选择具有最高count
值的 5 行
这是我的查询:
string sql = "SELECT top 5 count FROM Likes ORDER BY COUNT(*) DESC";
它只是抛出一个错误代码
列 'Likes.count' 在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
这是我明天要介绍的一个项目...
我正在尝试选择具有最高count
值的 5 行
这是我的查询:
string sql = "SELECT top 5 count FROM Likes ORDER BY COUNT(*) DESC";
它只是抛出一个错误代码
列 'Likes.count' 在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
这是我明天要介绍的一个项目...
在 SQL Server 上,只需执行以下操作:
SELECT TOP 5 * FROM Likes ORDER BY [Count] DESC
这假设您的Likes
-table 已经包含一个名为的列[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";