GROUP BY 句は、組み込みのユーザー定義集計関数 (UDAF) を使用して、1 つ以上のフィールドでデータを集約します。
説明
GROUP BY 句は、1 つ以上のフィールドのデータを集約して、最大値、最小値、平均値などの値を計算します。
構文
select:
SELECT [ ALL | DISTINCT ]
{ * | projectItem [, projectItem ]* }
FROM tableExpression
[ WHERE booleanExpression ]
[ GROUP BY { groupItem [, groupItem ]* } ]
[ HAVING booleanExpression ]
組み込み UDAF
次の表では、組み込み UDAF について説明します。
|
番号 |
関数名 |
機能 |
|
1 |
SUM |
集約後の合計を計算します。 |
|
2 |
MIN |
集約後の最小値を求めます。 |
|
3 |
MAX |
集約後の最大値を求めます。 |
|
4 |
COUNT |
行数をカウントします。 |
|
5 |
AVG |
集約後の平均値を計算します。 |
|
6 |
ARBITRARY |
任意の入力値を出力として選択します。 |
UDAF をカスタマイズして、集約ロジックを拡張できます。
例
-
SUM:
SELECT brand, SUM(price) FROM phone WHERE nid < 8 GROUP BY brand
-
MIN:
SELECT brand, MIN(price) FROM phone WHERE nid < 8 GROUP BY brand
-
MAX:
SELECT brand, MAX(price) FROM phone WHERE nid < 8 GROUP BY brand
-
COUNT:
SELECT brand, COUNT(*) FROM phone WHERE nid < 8 GROUP BY brand
-
AVG:
SELECT brand, AVG(price) FROM phone WHERE nid < 8 GROUP BY brand
-
HAVING 句:
SELECT brand FROM phone GROUP BY brand HAVING COUNT(brand) > 10