我在Oracle 10g中有以下表格
Country State/city No. of males No. of females
US TN 500000 450000
US CA 200000 180000
US GA 600000 650000
US KY 100000 75000
England Manchester 900000 750000
England London 1000000 950000
England Birmingham 250000 200000
India Delhi 1000000 1000000
India Mumbai 1000000 900000
India Chennai 750000 500000
我希望得到如下所示的输出。
Country State/city No. of males No. of females
US TN 500000 450000
US CA 200000 180000
US GA 600000 650000
US KY 100000 75000
Total 1400000 1370000
England Manchester 900000 750000
England London 1000000 950000
England Birmingham 250000 200000
Total 2150000 1500000
India Delhi 1000000 1000000
India Mumbai 1000000 900000
India Chennai 750000 500000
Total 2750000 19500000
我尝试使用ROLLUP输出,但是我在所有行的末尾只获得了总计。我想计算每个国家的总数。
答案 0 :(得分:8)
可以使用 GROUP BY GROUPING SETS
表达式完成此操作:
SELECT
country,
state,
SUM(males) AS males,
SUM(females) AS females
FROM
stats
GROUP BY GROUPING SETS
( (country, state),
(country),
() -- bonus: a Grand Total
) ;
进行测试