2010-02-20 48 views
0

我需要获得有评论的项目数量,但无法获取此SQL语句为我工作........任何建议?从表中选择* where和order by clause问题

Select count(Name) as TotalComments 
from TableName where comment <> '' 
order by ID 

错误消息:因为它不是在聚合函数或GROUP BY子句包含

列“TableName.ID”是在ORDER BY子句无效。

我完全错过了什么?

+1

有什么错误讯息?或者它只是没有返回行?另外,注释字段的数据类型是什么?它可以为空吗? – David 2010-02-20 08:33:20

+0

“TableName.ID”列在ORDER BY子句中无效,因为它不包含在聚合函数或GROUP BY子句中。 – Etienne 2010-02-20 08:35:39

回答

4

等一下...

Select count(Name) as TotalComments 
from TableName where comment <> '' 
order by ID 

你选择的计数,所以ORDER BY子句是没有意义的。你应该得到一个标量结果。 (单个值,而不是行如果集合)

这是一个诡计问题吗?现在为时尚早。

只需删除“Order By”条款。这是没有必要的。

+2

大卫并没有给你一个查询尝试。 – Nirmal 2010-02-20 08:39:20

+0

没错,@Nirmal。谢谢..我正在重复他的查询(如果他在我签字后改变了它,我已经有人这样做了,所以看起来我正在回答错误的问题。) – David 2010-02-20 08:41:11

+0

谢谢!一大早! – Etienne 2010-02-20 08:42:01

0

试试这个(我试过在SQL Server不能在MySQL中)

SELECT  Name, COUNT(ID) AS TotalComments 
FROM  TableName 
WHERE  (Comment IS NOT NULL) 
GROUP BY Name 
ORDER BY TotalComments