hive sql 对一个用户的每月金额累加,每年的总金额统计
时间: 2024-03-20 07:39:10 浏览: 94
要对一个用户的每月金额进行累加,并统计每年的总金额,可以结合窗口函数和GROUP BY语句来实现。具体的查询语句如下:
```
SELECT customer_id,
DATE_TRUNC('MONTH', order_date) AS month,
SUM(amount) OVER (PARTITION BY customer_id ORDER BY DATE_TRUNC('MONTH', order_date)) AS monthly_amount,
SUM(amount) OVER (PARTITION BY customer_id, DATE_TRUNC('YEAR', order_date) ORDER BY DATE_TRUNC('MONTH', order_date)) AS yearly_amount
FROM orders
WHERE customer_id = 'XXXXX'
ORDER BY month;
```
这个查询语句使用窗口函数 SUM() OVER() 对每个用户的订单按照月份进行累加统计。同时,使用 GROUP BY 子句对每个用户每年的订单进行分组,并计算每年的总金额。PARTITION BY 子句指定按照 customer_id 和 DATE_TRUNC('YEAR', order_date) 进行分区,ORDER BY 子句指定按照月份进行排序。最后,WHERE 子句指定要查询的用户的 customer_id,ORDER BY 子句按照月份对结果进行排序。
注意,如果要对所有用户的每月金额进行累加,并统计每年的总金额,只需要去掉 WHERE 子句即可。
阅读全文
相关推荐
















