2013-10-03 140 views
0

有這麼多的問題,這很荒謬。但是,即使閱讀了其中很多,我仍然沒有達到我想要的結果。MySQL單查詢COUNT

使用,PHP,我使用下面的查詢查詢MySQL數據庫

SELECT COUNT(`NumRecip`) AS `Total` 
FROM `Messaging` 
WHERE `Type`='Response' 
AND `datetime`>='2013-09-01 00:00:00' 

我也嘗試添加GROUP BY NumRecip並試圖COUNT(*),但我得到的結果55(如果你想這一點,顯然贏得了」 t是相同的答案)。 55並不是任意的。 55是適合此上下文的行數。答案應該在150到250之間(只是猜測,但不管)。我已經使用Max(NumRecip),結果66(這是最大的順便說一句),但我想要每個值的全部總和。

長話短說...我想要一個查詢,將所有的2s,3s,6s和一個66,並得到我的最終答案,而不是55(行數)或66(最大數量) 。

所有查詢我嘗試:

SELECT COUNT(`NumRecip`) AS `Total` 
FROM `Messaging` 
WHERE `Type`='Response' 
AND `datetime`>='2013-09-01 00:00:00' 

-

SELECT COUNT(*) AS `Total` 
FROM `Messaging` 
WHERE `Type`='Response' 
AND `datetime`>='2013-09-01 00:00:00' 
GROUP BY `NumRecip` 

-

SELECT COUNT(`NumRecip`) AS `Total` 
FROM `Messaging` 
WHERE `Type`='Response' 
AND `datetime`>='2013-09-01 00:00:00' 
GROUP BY `NumRecip` 

-

SELECT COUNT(*) AS `Total` 
FROM `Messaging` 
WHERE `Type`='Response' 
AND `datetime`>='2013-09-01 00:00:00' 
GROUP BY `NumRecip` 

-

SELECT MAX(`NumRecip`) AS `Total` 
FROM `Messaging` 
WHERE `Type`='Response' 
AND `datetime`>='2013-09-01 00:00:00' 

我可以做一個質量查詢,做一個while($row=mysql_fetch_assoc($query)){,只是不斷增加的NumRecip總共變量,但我的假設下有一個查詢選項來做到這一點,爲此,更快的方式。

+0

你是什麼意思的「*計數所有的2s,3s,6s,和一個66 *」?你在尋找收件人的總數嗎? –

+0

@EdGibbs是的。如果我有2行2個收件人,2行3個,7個6個,66箇中的1個,我希望所有這些添加在一起得到最終答案。不是行數 – timtj

回答

2

計數只顯示行數。如果你想加起來所有的數字,使用SUM()

SELECT SUM(`NumRecip`) AS `Total` 
FROM `Messaging` 
WHERE `Type`='Response' 
AND `datetime`>='2013-09-01 00:00:00' 
+0

它總是最簡單的答案。也很完美。謝謝 :) – timtj