将列的每个值除以 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;
能够将列的每个值除以 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;