我有一张名为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