在总结hive之前特地回去复习了一下,以前PostgreSQL的窗口函数(MySQL目前还没有支持),以下基于版本9.3实验。
我们都知道在sql中有一类函数叫做聚合函数,例如sum()、avg()、max()等等,这类函数可以将多行数据按照规则聚集为一行,一般来讲聚集后的行数是要少于聚集前的行数的.但是有时我们想要既显示聚集前的数据,又要显示聚集后的数据,这时我们便引入了窗口函数.
在深入研究Over字句之前,一定要注意:在SQL处理中,窗口函数都是最后一步执行,而且仅位于Order by字句之前.
数据准备
我们准备一张order1表,字段分别为name,orderdate,cost.数据内容如下:
insert into order1 values('jack','2017-01-01',10);
insert into order1 values('tony','2017-01-02',15);
insert into order1 values('jack','2017-02-03',23);
insert into order1 values('tony','2017-01-04',29);
insert into order1 values('jack','2017-01-01',46);
insert into order1 values('jack','2017-04-06',42);
insert into order1 values('tony','2017-01-07',50);
insert into order1 values('jack','2017-01-08',55);
insert into order1 values('mart','2017-04-08',62);
insert into order1 values('mart','2017-04-09',68);
insert into order1 values('neil','2017-05-10',12);
insert into order1 values('mart','2017-04-11',75);
insert into order1 values('neil','2017-06-12',80);
insert into order1 values('mart','2017-04-13',94);
insert into order1 values('jack','2017-06-06',23);
insert into order1 values(