You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HiveSQL按日期键分组基于订单状态行转列统计交易金额问题

解决方案

你遇到的报错原因是原SQL使用SELECT *查询全部字段,仅对txn_date_key做分组时,其他非聚合字段没有加入GROUP BY子句也没有被聚合函数包裹,不符合SQL语法规范。
按照你的HiveSQL约束要求,不需要临时表、日期函数即可实现需求,修改思路是将状态判断逻辑嵌套到聚合函数内,按日期维度汇总对应状态的交易总额,最终实现行转列效果,参考代码如下:

SELECT 
    txn_date_key,
    SUM(CASE WHEN order_item_unit_status = 'DELIVERED' THEN txn_amt ELSE 0 END) AS DELIVERED,
    SUM(CASE WHEN order_item_unit_status = 'RETURNED' THEN txn_amt ELSE 0 END) AS RETURNED
    -- 若存在其他order_item_unit_status取值,按上述格式新增对应字段即可
FROM sales
GROUP BY txn_date_key;

上述语句执行后,每个txn_date_key仅会输出一行记录,各个状态字段存储对应日期下该状态的总交易金额,完全符合预期输出要求。

内容的提问来源于stack exchange,提问作者Sid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 07:24:03