使用以下示例数据,
requestedDate Status
2020-04-21 APPROVED
2020-04-23 APPROVED
2020-04-27 PENDING
2020-05-21 PENDING
2020-06-01 APPROVED
我有以下查询以按状态,年,月等汇总计数
select
status,
count(*) status_count,
date_format(requestedDate, '%b') requested_month,
sum(count(*)) over(partition by year(requestedDate), month(requestedDate)) month_count,
sum(count(*)) over() total_count
from Reports
where requestedDate between current_date - interval 120 day and current_date
group by status, year(requestedDate), month(requestedDate), date_format(requestedDate, '%b') ;
查询的输出如下,
status status_count requested_month month_count total_count
APPROVED 1 Apr 2 4
PENDING 1 Apr 2 4
PENDING 1 May 1 4
APPROVED 1 Jun 1 4
我是否可以获取如下所示的输出,即状态,月份,该月每个状态的计数以及所述期间内所有记录的总数,
Status Month COUNT TOTAL_COUNT
APPROVED APR 2 5
APPROVED MAY 0 5
APPROVED JUN 1 5
PENDING APR 1 5
PENDING MAY 1 5
PENDING JUN 0 5
我的数据库是 mysql 8.0.17