hive sql/ spark sql/sql 根据时间取最新的记录

取用户购买的最新时间,套餐,价格等。

由于用户购买的套餐类型多,导致求出来的是各个套餐的最新时间,但是我只要用户购买时间最新的一个套餐。直接select userid,max(time),product from 表 group by userid,product 会出现以上问题。而只是单纯的group by userid 会报错。百度一晚上找到了left outer join的方法。满足了我的需求,以下下是我修改过的代码。
select b.userid,b.last_time,b.service_name,b.product_name,b.pay_price,b.creatdate from 
    (select userid,max(last_time) as last_time from youboy.yb_crmUser_daily_2 where ds = '${bizDate}' group by userid)  a
left outer join 
    youboy.yb_crmUser_daily_2  b
on (a.userid=b.userid and a.last_time=b.last_time)
where b.ds = '${bizDate}';
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值