1

能够将列的每个值除以表中的记录总数的查询

我尝试了以下查询

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
4

1 回答 1

1

使用分析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;
于 2019-05-01T05:08:27.087 回答