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

Divide each value of a column by the total count of records in a table

能够将列的每个值除以 table

中的记录总数的查询

我尝试了以下查询

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

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

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

使用解析 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;