繁体   English   中英

组总和,一次查询的组总和

[英]Group sum, group sum total in one query

要返回以下结果集-一列中的组总和,下一列中的总和。

我尝试使用子查询来执行此操作,但是它不起作用。

SELECT x.y, x.m, x.mcount mo, sum( x.mcount ) total
FROM (
    SELECT r.year y, r.month m, sum( r.count ) mcount
    FROM `report` r
    WHERE r.year >= '2013'
    AND r.day <=10
    GROUP BY r.year, r.month
) AS x
GROUP BY x.y, x.m

我想要的结果是这样的:

+----+-+--+-----+
|y   |m|mo|total|
+----+-+--+-----+
|2013|1|10|45   |
+----+-+--+-----+
|2013|2|15|45   |
+----+-+--+-----+
|2013|3|20|45   |
+----+-+--+-----+

可能吗? 谢谢。

这是我在桌子上写的一个简单示例,只是将表/列重命名

select year(k.date), month(k.date), sum(k.impression), a.total 
from kpi_funnel k
where date between '2012-01-01' and '2013-05-05'
join (select sum(impression) as total from kpi_funnel where date between '2012-01-01' and '2013-05-05') a
group by 1,2

编辑:您的情况:

 SELECT r.year y, r.month m, sum( r.count ) mcount, total.total
    FROM `report` r
    join
    (SELECT sum( r.count ) as total FROM `report` r WHERE r.year >= '2013' AND r.day <=10) as total
    WHERE r.year >= '2013'
    AND r.day <=10
    GROUP BY r.year, r.month

这就是您要寻找的

SELECT DISTINCT year y,  month m, sum( count ) OVER(PARTITION by month), sum(count) OVER(PARTITION BY year)     FROM report WHERE year >= 2013

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM