hive 关于sum() over() 等相关窗口函数使用

 f1 f2
 a 1000
 b 800
 c 788
 d 500
 e 100
 f 100
 g 50
 h 10
 i 10
 . .
 . .  

数据已经 order by f2 desc 

对于这个hive数据,如果要获取sum(f2从第一行。。。第n行)/sum(f2)<=80%的所有f1

select t.f1 from(select f1,sum(f2) over(order by f2 desc)  nm from table )t where t.nm<=sumall(f2)*0.8

猜你喜欢

转载自blog.csdn.net/yisun123456/article/details/81121796