SQLで平均、合計値を出力するとき
下記のようなテーブルがあったとします。
TABLE1
番号 | 名前 | 値
1 | AAA | 100
2 | BBB | 200
3 | CCC | 300
ここから、AAAとBBBの平均、合計を以下のように表示したいです。
番号 | 名前 | 値
1 | AAA | 100
2 | BBB | 200
88 | 平均 | 150
99 | 合計 | 300
この場合は以下のようにUNIONすれば作成できると思いますが、
他によい方法はないでしょうか?
SELECT 番号, 名前, 値
FROM TABLE1
WHERE (番号 = 1 OR 番号 = 2)
UNION ALL
SELECT 88 AS 番号, '平均' AS 名前, AVG(値)
FROM TABLE1
WHERE (番号 = 1 OR 番号 = 2)
UNION ALL
SELECT 99 AS 番号, '合計' AS 名前, SUM(値)
FROM TABLE1
WHERE (番号 = 1 OR 番号 = 2)
ORDER BY 番号;
上記のクエリだと、AVG, SUMをするために
同じような処理を行わなければなりませんので、
もっと効率のよい方法があれば教えてください。