Sybase IQ 12.7 User Manual

Page of 212
集約データの取得
 
12
 
Sybase IQ
集合関数によるグループ化されたデータの取得
テーブル全体についての情報を取得することに加えて、集合関数をローのグ
ループに対して使うこともできます。
ローのグループに対する
集合関数の使用
各営業担当者が受け持つ注文数をリストするには、次のコマンドを入力します。
SELECT sales_rep, count( * )
FROM sales_order
GROUP BY sales_rep
このクエリの結果は、各営業担当者の
 ID 番号別に、営業担当者の ID が格納さ
れたローと、
sales_order テーブル内でその ID 番号を持つローの数で構成され
ます。
GROUP BY 句を使用すると、結果のテーブルには、GROUP BY で指定したカ
ラムで見つかった値別のローが表示されます。
グループの制限
WHERE 句を使用して、クエリでローを制限する方法についてはすでに説明し
ました。
GROUP BY 句の制限には、HAVING キーワードを使用します。
GROUP BY 句の制限
注文数が
 55 を超えるすべての営業担当者をリストするには、次のコマンドを
入力します。
SELECT sales_rep, count( * )
FROM  sales_order
GROUP BY sales_rep
HAVING count( * ) > 55
注意
GROUP BY は常に HAVING の前に指定します。同様に、WHERE は GROUP
BY の前に指定します。
sales_rep count(*)
129 57
195 50
299 114
467 56
667 54
sales_rep count(*)
129 57
299 114
467 56
1142 57