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