Sybase IQ 12.7 User Manual

Page of 212
 1 章    データベース・テーブルからのデータの選択
パフォーマンス&チューニング・ガイド
15
次のクエリは、
GROUPING 関数を GROUP BY CUBE と組み合わせた使用例
です。
SELECT
CASE GROUPING ( state ) WHEN 1 THEN 'ALL' ELSE state END 
AS c_state,
CASE GROUPING ( gender ) WHEN 1 THEN 'ALL' ELSE gender 
END AS c_gender,
CASE GROUPING ( education ) WHEN 1 THEN 'ALL' ELSE 
education END AS c_education,
COUNT(*), CAST (ROUND ( AVG ( income ), 2 ) AS NUMERIC 
(18,2)) AS average
FROM census
GROUP BY CUBE (state, gender, education);
このクエリの結果は次のとおりです。
CUBE が生成した小計ローを示す NULL
値が、クエリ内の指定によって小計ローで
 ALL に置き換わっています。
c_state
c_gender
c_education
count(*)
average
MA
f
BA
3
48333.33
MA
f
HS
2
40000.00
MA
f
MS
1
45000.00
MA
f
ALL
6
45000.00
MA
m
BA
4
55000.00
MA
m
HS
1
55000.00
MA
m
MS
3
85000.00
MA
m
ALL
8
66250.00
MA
ALL
ALL
14
57142.86
NH
f
HS
2
50000.00
NH
f
MS
1
85000.00
NH
f
ALL
3
61666.67
NH
m
BA
3
55000.00
NH
m
MS
1
49000.00
NH
m
ALL
4
53500.00
NH
ALL
ALL
7
57000.00
ALL
ALL
ALL
21
57095.24
ALL
ALL
BA
10
53000.00
ALL
ALL
MS
6
72333.33
ALL
ALL
HS
5
47000.00
ALL
f
ALL
9
50555.56