內置UDAF列表
HA3目前內置了幾種常見UDAF:
sum:聚合后求和
avg:聚合后求均值
max:聚合后求最大值
min:聚合后求最小值
count:聚合后統計條目數
ARBITRARY:聚合后選擇某一個值(一般用于從“值全部相同的字段”中返回數據),其它SQL引擎中可能稱為IDENTITY函數
GATHER:將多個單值聚合為一個多值
MULTIGATHER:將多個多值聚合為一個多值
MAXLABEL:聚合后求最大值對應的Label值
使用示例
測試數據
后續演示將使用測試環境的 phone
表進行,表中主要記錄了主流品牌的手機信息,表的內容如下:
nid | title | price | brand | size | color |
1 | Huawei Mate 9 麒麟960芯片 徠卡雙鏡頭 | 3599 | Huawei | 5.9 | 紅 |
2 | Huawei P10 Plus全網通手機 | 4388 | Huawei | 5.5 | 藍 |
3 | Xiaomi/小米 紅米手機4X 32G全網通4G智能手機 | 899 | 小米 | 5.0 | 黑 |
4 | OPPO R11 全網通前后2000萬指紋識別拍照手機r11r9s | 2999 | OPPO | 5.5 | 紅 |
5 | Meizu/魅族 魅藍E2 全網通正面指紋快充4G智能手機 | 1299 | Meizu | 5.5 | 銀白 |
6 | Nokia/諾基亞 105移動大聲老人機直板按鍵學生老年小手機超長待機 | 169 | Nokia | 1.4 | 藍 |
7 | Apple/蘋果 iPhone 6s 32G 原封國行現貨速發 | 3599 | Apple | 4.7 | 銀白 |
8 | Apple/蘋果 iPhone 7 Plus 128G 全網通4G手機 | 5998 | Apple | 5.5 | 亮黑 |
9 | Apple/蘋果 iPhone 7 32G 全網通4G智能手機 | 4298 | Apple | 4.7 | 黑 |
10 | Samsung/三星 GALAXY S8 SM-G9500 全網通 4G手機 | 5688 | Samsung | 5.6 | 霧嶼藍 |
檢索示例
檢索全表內容
SELECT * FROM phone ORDER BY nid LIMIT 1000
USE_TIME: 0.036, ROW_COUNT: 10
------------------------------- TABLE INFO ---------------------------
nid | title | price | brand | size | color |
1 | null | 3599 | Huawei | 5.9 | null |
2 | null | 4388 | Huawei | 5.5 | null |
3 | null | 899 | Xiaomi | 5 | null |
4 | null | 2999 | OPPO | 5.5 | null |
5 | null | 1299 | Meizu | 5.5 | null |
6 | null | 169 | Nokia | 1.4 | null |
7 | null | 3599 | Apple | 4.7 | null |
8 | null | 5998 | Apple | 5.5 | null |
9 | null | 4298 | Apple | 4.7 | null |
10 | null | 5688 | Samsung | 5.6 | null |
注:title和color是Summary字段,所以在本階段查詢中顯示為null
使用sum函數統計每個品牌商品的總價
SELECT brand, sum(price) FROM phone GROUP BY (brand) ORDER BY brand LIMIT 1000
USE_TIME: 0.152, ROW_COUNT: 7
------------------------------- TABLE INFO ---------------------------
brand | SUM(price) |
Apple | 13895 |
Huawei | 7987 |
Meizu | 1299 |
Nokia | 169 |
OPPO | 2999 |
Samsung | 5688 |
Xiaomi | 899 |
使用max函數統計每個品牌最貴手機的價格,并按照最高價格降序排列
SELECT brand, max(price) AS price FROM phone GROUP BY (brand) ORDER BY price DESC LIMIT 1000
USE_TIME: 0.053, ROW_COUNT: 7
------------------------------- TABLE INFO ---------------------------
brand | price |
Apple | 5998 |
Samsung | 5688 |
Huawei | 4388 |
OPPO | 2999 |
Meizu | 1299 |
Xiaomi | 899 |
Nokia | 169 |
使用MAXLABEL函數統計每個品牌最貴手機的屏幕尺寸
SELECT brand, MAXLABEL(size, price) AS size FROM phone GROUP BY brand