本文向您介紹了Group By的文法格式、內建UDAF函數及其相關樣本。
描述
Group By用來對一個或者多個欄位彙總,以此算出相應的資料,比如最大值、最小值、平均值等。
文法格式
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 brandmin:
SELECT brand, MIN(price) FROM phone WHERE nid < 8 GROUP BY brandmax:
SELECT brand, MAX(price) FROM phone WHERE nid < 8 GROUP BY brandcount:
SELECT brand, COUNT(*) FROM phone WHERE nid < 8 GROUP BY brandavg:
SELECT brand, AVG(price) FROM phone WHERE nid < 8 GROUP BY brandhaving子句:
SELECT brand FROM phone GROUP BY brand HAVING COUNT(brand) > 10