2013-05-13 103 views
0

我有一張名爲myTable的表。計算答案天mySQL

具有以下字段

ID Date_Done 成功( '是', '否',NULL) TOTAL_COST

我知道我可以通過使用

SELECT Date_Done, COUNT(*) FROM myTable Group By Date_Done; 
得到每天計數

我想要的是一天中成功的「是」人數的計數。

Wh在那個SQL看起來像?

回答

1
SELECT Date_Done, SUM(Successful = 'Yes') 
FROM myTable 
GROUP BY Date_Done 
+0

這比'WHERE Successful ='Yes''好嗎? – tadman 2013-05-13 18:35:07

+0

會打開添加'sum(成功='否')'來分割計數的可能性。 – 2013-05-13 18:35:37

+0

謝謝馬克。你的回答太快,我無法再接受來自另外8分鐘的答案..... – JVMX 2013-05-13 18:36:41

2

直入總和:

SELECT Date_Done, COUNT(*) AS Successful_Count 
    FROM myTable 
    WHERE Successful='Yes' 
    GROUP BY Date_Done 

如果您對Date_Done, Successful這個指數通常是比較快的。

要打破個人狀態代碼的總和:

SELECT Date_Done, Successful, COUNT(*) AS Type_Count 
    FROM myTable 
    GROUP BY Date_Done, Successful 

再一次在這裏的指數將顯着提高性能。

+0

'(Successful,Date_Done)'上的索引會更好。 – 2013-05-13 19:11:02

+0

儘管如此,這對'COUNT(*)GROUP BY Date_Done'查詢沒有幫助。 – tadman 2013-05-13 19:21:04

+0

我想你的意思是從第二個查詢中刪除WHERE。 – 2013-05-13 19:24:05