2013-08-19 128 views

回答

13

COUNT()按預期工作。當你輸入group by子句時,count()會給出GROUP BY的結果。如果您希望獲取包含group by的查詢中的行數,請將其用作子查詢。

喜歡的東西:

SELECT COUNT(*) FROM (SELECT * FROM `table` 
         GROUP BY `column1`) AS `a` 
+1

謝謝,你的答案是我所需要的。 – silkfire

+0

謝謝@silkfire。如果這解決了您的問題,請將其標記爲答案。 – Kangkan

1

不要使用組,它會統計每個的數量。

+0

給出正確的結果並且不使用組嗯,我其實*需要* GROUP BY,所以它應該返回正確的數字。 – silkfire

+0

@silkfire是的。如果您需要,它會返回每個組的計數。如果你想返回所有項目的數量,只需刪除組。 – MarshalSHI

2

好吧,簡單的答案。如果你不需要團體,不要GROUP BY

要麼使用COUNT(DISTINCT articles.company)而要使用GROUP BY或保留GROUP BY並將整個查詢包裝在SELECT COUNT(*) FROM (...) AS data中,如果要計算組。

0

寫上面的查詢作爲子查詢,然後它會通過

 
select count(*) from (select articles.id from 'contract_prices' left join 'articles' on 
    (arcticles.id = contract_prices.article) 
    where 'contract_to' >= curdate() 
    ) 
相關問題