2010-02-20 17 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