MySql查询不同条件
我有这个桌子结构MySql查询不同条件,mysql,sql,Mysql,Sql,我有这个桌子结构 yymm | orderid | itemid | price | qty | status 2011 | 123456 | ABC | 100 | 1 | completed 2011 | 123456 | DEF | 200 | 1 | completed 2010 | 112233 | ABC | 100 | 1 | cancelled 2010 | 112233 | DEF | 200 | 1 | canc
yymm | orderid | itemid | price | qty | status
2011 | 123456 | ABC | 100 | 1 | completed
2011 | 123456 | DEF | 200 | 1 | completed
2010 | 112233 | ABC | 100 | 1 | cancelled
2010 | 112233 | DEF | 200 | 1 | cancelled
我想知道完成和取消了多少不同的订单
我提出了这个问题,但这并不清楚
select date,
COUNT(IF(status = 'completed', 1, NULL)) AS completed,
COUNT(IF(status = 'cancelled', 1, NULL)) AS cancelled
from my_table
GROUP BY date
order by date
如何计算不同的顺序
预期的结果是
date | completed | cancelled
2011 | 1 | 0
2010 | 0 | 1
谢谢使用countdistinct:
我更喜欢case而不是if,因为case是条件逻辑的SQL标准。或者
select count(distinct order_id), date
from my_table
where status in ('completed','cancelled')
GROUP BY date
order by date
谢谢,我被错误地放在了不同的内部,比如COUNTIFstatus='completed',不同的orderid,NULL
select count(distinct order_id), date
from my_table
where status in ('completed','cancelled')
GROUP BY date
order by date