Hive 级联报表查询

博客围绕查询每人每月盈利及当年至当月累计利润展开。实现步骤包括建表导入数据、统计每月利润、查询结果自连接求累计利润。还提到采用group by时遇到问题,即不包含t1.allincome分组会报错,理解为分组字段及函数操作结果可查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据:

需求:查询每人每月的盈利以及当年至当月的累计利润

实现:

  1.建表导入数据

2.先统计出每月的利润

 

3.查询结果自连接,条件:一表的月份大于等于二表的月份(累计求出各个月份的总利润)

select  t1.name,t1.month,t1.allincome, sum(t2.allincome)from
(select name,substr(time,1,7) as month,sum(income) as allincome 
from t_form 
group by name,substr(time,1,7)) t1
join 
(select name,substr(time,1,7) as month,sum(income) as  allincome 
from t_form 
group by name,substr(time,1,7)) t2
 on t1.name=t2.name 
where t1.month>=t2.month
group by t1.name,t1.month,t1.allincome
;

 

这里有个问题卡了很久。当采用group  by以后,能查询到的字段有哪些。我自己的理解为用来分组的key,以及函数操作value得到的结果。

在这里,刚开始group by 没有 t1.allincome 想取到t1.allincome 就会一直报错。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值