我有以下数据
| 2015-10-01 00:18:55 | 100021397 | canceled |
| 2015-10-01 02:05:16 | 100021398 | processing |
| 2015-10-01 02:15:23 | 100021399 | processing |
| 2015-10-01 02:17:40 | 100021400 | processing |
| 2015-10-01 02:28:02 | 100021401 | processing |
| 2015-10-01 02:31:39 | 100021402 | processing |
| 2015-10-01 02:44:13 | 100021403 | canceled |
| 2015-10-02 00:00:35 | 100021519 | canceled |
| 2015-10-02 01:05:22 | 100021520 | processing |
| 2015-10-02 01:06:42 | 100021521 | processing |
我需要输出按日期分组格式
Date | Number Of all Item | Number of Item with status not canceled |
2015-10-01 | 7 | 5
2015-10-02 | 3 | 2
创建前两列很容易,但第三列有点棘手,请帮忙
答案 0 :(得分:1)
使用SUM()
,您可以"计算"布尔表达式的结果(返回0或1,false或true)。
SELECT DATE(date), COUNT(DISTINCT item), SUM(status != 'canceled')
FROM your_table
GROUP BY DATE(date);
答案 1 :(得分:1)
select
date(`date`) as `date`,
count(*) as `Number Of all Item`,
sum(if(status!='canceled',1,0)) as `Number of Item with status not canceled`
from tbl1 group by date(`date`)