Mysql 按日计算答案
我有一张桌子叫myTable 使用以下字段 身份证 完成日期 成功('Yes','No',Null) 总成本 我知道我可以通过使用Mysql 按日计算答案,mysql,Mysql,我有一张桌子叫myTable 使用以下字段 身份证 完成日期 成功('Yes','No',Null) 总成本 我知道我可以通过使用 SELECT Date_Done, COUNT(*) FROM myTable Group By Date_Done; 我想要的是计算每天成功的“是”和“是”的用户数 SQL是什么样子的?一个简单的总结: SELECT Date_Done, SUM(Successful = 'Yes') FROM myTable GROUP BY Date_Done SELEC
SELECT Date_Done, COUNT(*) FROM myTable Group By Date_Done;
我想要的是计算每天成功的“是”和“是”的用户数
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\u Done上有一个索引,那么成功的通常会非常快
要在其中分解各个状态代码的总和:
SELECT Date_Done, Successful, COUNT(*) AS Type_Count
FROM myTable
GROUP BY Date_Done, Successful
这里的索引将再次大大提高性能。直接汇总:
SELECT Date_Done, COUNT(*) AS Successful_Count
FROM myTable
WHERE Successful='Yes'
GROUP BY Date_Done
如果您在Date\u Done上有一个索引,那么成功的通常会非常快
要在其中分解各个状态代码的总和:
SELECT Date_Done, Successful, COUNT(*) AS Type_Count
FROM myTable
GROUP BY Date_Done, Successful
这里的索引将再次大大提高性能。这比成功的中的
有什么好处?留下了添加总和的可能性(成功的='no')
分割计数。谢谢马克。你的回答太快了,我无法在8分钟内接受答案……这不会分割计数,它只是切换正在进行的计数的类型。它还完全忽略索引,强制进行行扫描。这比成功的情况下,='Yes'
有什么更好的地方吗asum(successful='no')
来分割计数。谢谢马克。你的回答太快了,我无法在8分钟内接受答案……这不会分割计数,它只是切换正在进行的计数类型。它还完全忽略索引,强制行扫描。上的索引(成功,日期完成)
会更好。但是,这对按日期分组的查询没有帮助。我猜您是想从第二次查询中删除WHERE
。在(成功,完成日期)
上的索引会更好。这对计数(*)没有帮助但是,按日期分组\u完成了
查询。我猜您是想从第二次查询中删除WHERE
。