Sybase 12.7 Home Theater System User Manual


 
4 OLAP の使用
パフォーマンス&チューニング・ガイド 57
GROUP BY のキーに定数式を指定することはできません。
注意 キューブのサイズがテンポラリ・キャッシュのサイズを超えると、CUBE
のパフォーマンスが低下します。
GROUPING CUBE 演算子を併用すると、格納されていた NULL 値と CUBE
によって作成されたクエリ結果の “NULL” 値を区別することができます。
GROUPING 関数を使用して結果を分析する方法については、ROLLUP 演算子
の説明で紹介した例を参照してください。
CUBE 操作が返す結果セットには、集計カラムを除くすべてのカラムの値が
NULL であるローが少なくとも 1 つは含まれています。このローは、集合関数
に対する全カラムの要約を表しています。
CUBE 1 次の例は、対象者の州 ( 地理的な位置 )、性別、教育レベル、およ
び収入などで構成される調査データを使用したクエリです。最初に紹介するク
エリには GROUP BY 句が指定されています。この句は、クエリの結果を
census テーブルの stategendereducation カラムの値に応じてロー・グルー
プに分類し、収入の平均とローの合計数をグループごとに計算します。このク
エリには GROUP BY 句だけを使用し、ローのグループ化に CUBE 演算子を使
用していません。
SELECT state, sex as gender, dept_id, COUNT(*),
CAST(ROUND(AVG(salary),2) AS NUMERIC(18,2))
AS average
FROM employee WHERE state IN ('MA' , 'CA')
GROUP BY state, sex, dept_id
ORDER BY 1,2;
このクエリの結果セットを次に示します。
state gender dept_id count(*) avg salary
----- ------ ------- -------- ----------
CA F 200 2 58650.00
CA M 200 1 39300.00
MA F 500 4 29950.00
MA F 400 8 41959.88
MA F 300 7 59685.71
MA F 200 3 60451.00
MA F 100 6 58243.42
MA M 300 2 58850.00
MA M 500 5 36793.96
MA M 400 8 45321.47
MA M 100 13 58563.59
MA M 200 8 46810.63