在Hive中进行数据聚合主要使用GROUP BY子句结合聚合函数。以下是一些常用的聚合函数和示例:
SELECT column_name, AGGREGATE_FUNCTION(column_name)
FROM table_name
WHERE condition
GROUP BY column_name;
假设有一个名为sales的表,结构如下:
| id | product_id | amount | sale_date |
|---|---|---|---|
| 1 | 101 | 100 | 2023-01-01 |
| 2 | 102 | 200 | 2023-01-01 |
| 3 | 101 | 150 | 2023-01-02 |
| 4 | 103 | 300 | 2023-01-02 |
| 5 | 102 | 250 | 2023-01-03 |
SELECT product_id, SUM(amount) AS total_sales
FROM sales
GROUP BY product_id;
结果:
| product_id | total_sales |
|---|---|
| 101 | 250 |
| 102 | 450 |
| 103 | 300 |
SELECT sale_date, COUNT(*) AS daily_sales_count
FROM sales
GROUP BY sale_date;
结果:
| sale_date | daily_sales_count |
|---|---|
| 2023-01-01 | 2 |
| 2023-01-02 | 2 |
| 2023-01-03 | 1 |
SELECT product_id, AVG(amount) AS average_sales
FROM sales
GROUP BY product_id;
结果:
| product_id | average_sales |
|---|---|
| 101 | 125.0 |
| 102 | 325.0 |
| 103 | 300.0 |
SELECT sale_date, MAX(amount) AS max_sales
FROM sales
GROUP BY sale_date;
结果:
| sale_date | max_sales |
|---|---|
| 2023-01-01 | 200 |
| 2023-01-02 | 300 |
| 2023-01-03 | 300 |
GROUP BY子句中的列必须是SELECT语句中出现的列,或者是聚合函数。HAVING子句对分组后的结果进行过滤,类似于SQL中的WHERE子句,但作用于聚合函数的结果。ORDER BY子句可以对最终结果进行排序,但通常放在查询的最后。通过这些基本操作,你可以在Hive中轻松地进行数据聚合分析。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。