hive sql 实现pivot
时间: 2024-08-15 17:01:11 浏览: 97
Hive SQL练习题库
Hive SQL 中的 PIVOT 或者 UNPIVOT 是一种用于数据重塑的技术,它可以帮助你在查询结果中将列转换为行,或者反之,以便于对数据进行分析和汇总。当你需要改变表的行和列结构时,可以使用 PIVOT。
例如,假设你有一个包含用户消费记录的表,原始表可能是这样的:
```sql
+--+
| 1 | apple | 50 |
| 1 | banana | 30 |
| 2 | orange | 40 |
| 3 | apple | 70 |
+---------+----------+--------+
```
如果你想按照产品类别汇总每个用户的总消费,可以使用 PIVOT 来创建一个新的视角:
```sql
SELECT *
FROM (
SELECT user_id, product AS category, amount
FROM your_table
) t
PIVOT (
SUM(amount)
FOR product IN ('apple', 'banana', 'orange')
) p;
```
这将返回的结果是:
```sql
+---------+-----------+---------+---------+
| user_id | apple | banana | orange |
+---------+-----------+---------+---------+
| 1 | 80 | 30 | NULL |
| 2 | NULL | NULL | 40 |
| 3 | 70 | NULL | NULL |
+---------+-----------+---------+---------+
```
在这个例子中,我们用 `PIVOT` 将 `amount` 列按产品聚合到了新的行上。
阅读全文