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');