一种能够将列的每个值除以表中记录总数的查询
我尝试了以下查询
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
答案 0 :(得分: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;