如何在mysql查询中汇总结果

时间:2020-08-20 06:53:47

标签: mysql sql window-functions

使用以下示例数据,

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

dbfiddle

0 个答案:

没有答案