我有一張名爲myTable的表。計算答案天mySQL
具有以下字段
ID Date_Done 成功( '是', '否',NULL) TOTAL_COST
我知道我可以通過使用
SELECT Date_Done, COUNT(*) FROM myTable Group By Date_Done;
得到每天計數
我想要的是一天中成功的「是」人數的計數。
Wh在那個SQL看起來像?
我有一張名爲myTable的表。計算答案天mySQL
具有以下字段
ID Date_Done 成功( '是', '否',NULL) TOTAL_COST
我知道我可以通過使用
SELECT Date_Done, COUNT(*) FROM myTable Group By Date_Done;
得到每天計數
我想要的是一天中成功的「是」人數的計數。
Wh在那個SQL看起來像?
SELECT Date_Done, SUM(Successful = 'Yes')
FROM myTable
GROUP BY Date_Done
直入總和:
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
再一次在這裏的指數將顯着提高性能。
'(Successful,Date_Done)'上的索引會更好。 – 2013-05-13 19:11:02
儘管如此,這對'COUNT(*)GROUP BY Date_Done'查詢沒有幫助。 – tadman 2013-05-13 19:21:04
我想你的意思是從第二個查詢中刪除WHERE。 – 2013-05-13 19:24:05
這比'WHERE Successful ='Yes''好嗎? – tadman 2013-05-13 18:35:07
會打開添加'sum(成功='否')'來分割計數的可能性。 – 2013-05-13 18:35:37
謝謝馬克。你的回答太快,我無法再接受來自另外8分鐘的答案..... – JVMX 2013-05-13 18:36:41