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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...