如何解决Mysql Group by 2查询1
我有2个不同的查询,但是使用相同的日期列组。有没有办法在一个sql查询中使用它们?
状态= 1表示确定 状态= 0表示可选
1. Query = 'SELECT book_day,sum(pax) as pax,count(*) FROM rezervations WHERE book_day BETWEEN :first_day AND :end_day AND status = 1 GROUP BY book_day';
2. Query = 'SELECT book_day,count(*) FROM rezervations WHERE book_day BETWEEN :first_day AND :end_day AND status = 0 GROUP BY book_day';
我希望得到类似的结果
'2020-08-15' | 50 pax status 1(certain) | 20 pax status 0 (optional)
'2020-08-18' | 10 pax status 1(certain) | 5 pax status 0 (optional)
.....
...
..
.
谢谢。
解决方法
在什么时候回答我的问题。这是查询:
select
book_day,sum(case when status = 1 then pax else 0 end) as certain,sum(case when status = 0 then pax else 0 end) as optional
from
rezervations
group by
book_day
结果是:
(`book_day`,`certain`,`optional`)
('2020-07-26','15','0'),('2020-07-29','20','7'),('2020-08-15',('2020-08-27','28'),('2020-08-28','0','22');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。