将列的每个值除以表中记录的总数

umuewwlo  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(429)

一种查询,它能将一列的每个值除以表中记录的总数
我尝试了以下查询

select ( (p.rank/count(*)) * 100 ) as rankratio from RankTable p;

我看到一个错误,无法执行查询。例如
总记录数为5 so(1/5)*100=20

RankTable         
rank            rankratio        
1               20
2               40
3               60
4               80
5               100
nbewdwxp

nbewdwxp1#

使用分析 count(*) over() :

select ( (s.rank/s.total_count) * 100 ) as rankratio 
from
(
select rank, count(*) over() as total_count
  from RankTable p
)s
order by s.rank;

相关问题