hive_连续天次计算
作者:互联网
drop table sospdm.tmp_yinfei_yuanzuan_redbag; create table sospdm.tmp_yinfei_yuanzuan_redbag stored as rcfile as select member_no,red_amount,process_time as min_date,date_add(process_time,diffdate-1) as max_date,diffdate from ( select member_no,red_amount,process_time,diffdate,row_number() over(partition by member_no order by diffdate desc ) as rk from ( select member_no,red_amount,process_time,diffdate ,row_number() over(partition by member_no,red_amount,process_time order by diffdate) as rn from ( select t1.member_no,t1.red_amount,t1.process_time,datediff(t2.process_time,t1.process_time)+1 as diffdate from ( select member_no,sum(red_amount) as red_amount,to_date(process_time) as process_time from sosp_ssa.xxx where to_date(process_time)>='2018-12-20' and to_date(process_time)<='2019-01-20' and activity_id = '1212draw' group by member_no,to_date(process_time) ) t1 inner join ( select member_no,sum(red_amount) as red_amount,to_date(process_time) as process_time from sosp_ssa.xxx where to_date(process_time)>='2018-12-20' and to_date(process_time)<='2019-01-20' and activity_id = '1212draw' group by member_no,to_date(process_time) ) t2 on t1.member_no=t2.member_no where datediff(t2.process_time,t1.process_time) >= 0 ) t3 ) t4 where diffdate = rn and rn >= 7 ) t5 where rk = 1;
标签:process,hive,member,date,计算,time,天次,diffdate,red 来源: https://www.cnblogs.com/yin-fei/p/10752043.html