Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 按日计算答案_Mysql - Fatal编程技术网

Mysql 按日计算答案

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

我有一张桌子叫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
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'
有什么更好的地方吗a
sum(successful='no')
来分割计数。谢谢马克。你的回答太快了,我无法在8分钟内接受答案……这不会分割计数,它只是切换正在进行的计数类型。它还完全忽略索引,强制行扫描。
上的索引(成功,日期完成)
会更好。但是,这对按日期分组的查询没有帮助。我猜您是想从第二次查询中删除
WHERE
。在
(成功,完成日期)
上的索引会更好。这对
计数(*)没有帮助但是,按日期分组\u完成了
查询。我猜您是想从第二次查询中删除
WHERE