1. 题目
在论坛看到的Oracle的SQL练习题,想到Hive也可以实现,就拿来试了一下~~
2.思路
可以通过分组函数 lead() over() 来取Start_dt 和End_dt
3.解答
1)建表
create table acctno_bal(
Acctno bigint COMMENT ‘账号’,
Current_bal int COMMENT ‘余额’,
Txn_dt string COMMENT ‘交易日期’
) COMMENT ‘账户余额明细表’;
2)插入数据
插入样例数据:
insert into acctno_bal values(600000001201,800,‘20120101’);
insert into acctno_bal values(600000001201,520,‘20120809’);
insert into acctno_bal values(600000001202,100,‘20120106’);
insert into acctno_bal values(600000001202,200,‘20120808’);
检查样例数据:
hive > select