2014-01-14 35 views
1

要返回以下結果集 - 在一列中的總和,總和在下。團體總數,團體總數在一個查詢

我試圖用子查詢來做,但它不起作用。

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 | 
+----+-+--+-----+ 

這可能嗎?謝謝。

回答

1

這裏有一個簡單的例子,我的一個在我所寫的,只是重命名錶/ COLS

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 
+0

謝謝,工作正常。 – daba

0

下面是你在找什麼

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