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 に精通していますが、私が探しているものを得る組み合わせを見つけることができないようです. 使用GROUP BY ROLLUP(country, province)
には、必要な合計値が含まれますが、気にしない多数の余分な値も含まれます。これは、GROUP BY ROLLUP(country), province
「合計」の記録を作成するにはどうすればよいですか?
現在、 で計算しUNION ALL
、最初のクエリの 90% を別の で繰り返していGROUP BY
ますが、最初のクエリは自明ではないため、結果は遅くて醜いコードになります。
これで遊んでみたい人のための SQL Fiddle があります: http://sqlfiddle.com/#!4/12ad9/5