2

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

这是我的查询:

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

它只是抛出一个错误代码

列 'Likes.count' 在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。

这是我明天要介绍的一个项目... 在此处输入图像描述

4

3 回答 3

5

在 SQL Server 上,只需执行以下操作:

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

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

于 2015-06-09T09:16:10.740 回答
2

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

SELECT   top 5  [count] FROM  Likes  ORDER BY [Count] DESC
于 2015-06-09T09:17:14.437 回答
1

count是一个保留字,这就是为什么您应该避免将它们用于列名的原因。如果您不想重命名列,您可以对其进行转义,不同的 dbms 可能会影响您执行此操作的人。在 ssms 中,您将使用方括号。

string sql = "SELECT   top 5  [count] FROM  Likes  ORDER BY COUNT(*) DESC";
于 2015-06-09T09:18:32.020 回答