【发布时间】:2021-08-06 16:00:40
【问题描述】:
假设我有一个包含 ID、NAME、POPULATION 列的简单表 CITY 我想知道人口> 10000的城市的百分比是多少。 我可以做到这一点
select count(*) / (select count(*) from CITY) * 100
from CITY
where population > 10000
或者像这样
select count(case when population > 100000 then 1 else null end) / count(*) * 100
from CITY
但我认为为此使用窗口函数是合适的。如何? 当我做类似的事情时
select count(*) / sum(count(*)) over () * 100
from CITY
where population > 100000
我得到 100 个原因 over() 只计算剩余的行。所以,问题是: 如何实现一个widow函数来计算有条件的百分比?
【问题讨论】:
标签: sql conditional-statements window percentage