假设我有一个census
包含以下信息的表:
COUNTRY PROVINCE CITY POPULATION
==============================================
USA California Sacramento 1234
USA California SanFran 4321
USA Texas Houston 1111
USA Texas Dallas 2222
Canada Ontario Ottawa 3333
Canada Manitoba Winnipeg 4444
我正在建立国家/省级的报告,它给了我以下信息:
SELECT country, province, SUM(population)
FROM census
GROUP BY country, province;
COUNTRY PROVINCE SUM(POPULATION)
=======================================
USA California 5555
USA Texas 3333
Canada Ontario 3333
Canada Manitoba 4444
我希望在报告中包含一个“总体摘要”行,以便最终结果如下所示:
COUNTRY PROVINCE SUM(POPULATION)
=======================================
USA California 5555
USA Texas 3333
Canada Ontario 3333
Canada Manitoba 4444
TOTAL 16665
我对ROLLUP
s 很熟悉,但我似乎无法找到一个可以让我得到我想要的东西的组合。UsingGROUP BY ROLLUP(country, province)
包括我想要的总价值,但它也包括大量我不关心的额外价值。这也适用于GROUP BY ROLLUP(country), province
我怎样才能制作“总”记录?
我目前正在用 a 计算它,UNION ALL
并用 a different 重复 90% 的第一个查询GROUP BY
,但是因为第一个查询很重要,所以结果是缓慢而丑陋的代码。
对于那些想要玩这个的人来说,这是一个 SQL Fiddle:http ://sqlfiddle.com/#!4/12ad9/5