2011-06-17 57 views
3

是否有MySQL的一種方法來實現獲取COUNT()的SUM()

SELECT COUNT(SUM(field2)) FROM TABLE WHERE field1='value' GROUP BY field2 

返回一行所計數字段2.

字段1個& &字段2的總和都不是獨一無二的。

如果需要更多信息,請讓我知道。

編輯: 我沒有想清楚。 我需要COUNT的COUNT。

所以從場2 這一切的計數值可以通過獲取的行數來實現,但是我選擇了這個:

SELECT COUNT(first_count) total_count FROM 
(SELECT COUNT(field2) as first_count FROM TABLE 
    WHERE field1='value' GROUP BY field2)t1 

還是有更快的查詢?

乾杯!

+3

`GROUPED BY`聽起來不錯,但它不是正確的:) – Teneff 2011-06-17 12:35:59

+3

SUM(域2)返回每場2 1倍的值,你能澄清你想要什麼的計數? – 2011-06-17 12:36:01

回答

5

你更新

SELECT COUNT(first_count) total_count FROM 
( 
    SELECT COUNT(field2) as first_count FROM TABLE 
    WHERE field1='value' GROUP BY field2)t1 
) 

是計數的計數對於每個字段2,其與唯一字段2的計數相同;

SELECT COUNT(DISTINCT field2) FROM TABLE WHERE field1='value' 
5

我想你的意思:

SELECT field2 
    , field2 * COUNT(*) 
FROM TABLE 
WHERE field1 = 'value' 
GROUP BY field2 

另外:

沒有GROUPED BY。有:GROUP BY


您的更新和澄清之後,我覺得你的查詢顯示是一樣的:

SELECT COUNT(DISTINCT field2) AS total_count 
FROM TABLE 
WHERE field1 = 'value'