Select 查询具有给定值的行的百分比?
Select query for the percentage of rows that have a given value?
如果我有下面的 table,我如何将 SELECT
查询写入 return 任何类型,其中值为 1 的行的百分比大于 50 %?
所以在这种情况下,它只会 return B,因为 66% 的 TYPE B 行的值为 1.
TYPE VALUE
-------------
A 0
A 0
A 1
A 0
B 0
B 1
B 1
C 0
C 0
C 0
您可以使用条件聚合:
select type
from t
group by t
having avg(case when value = 1 then 1.0 else 0.0 end) > 0.5;
您可以在 select
上包含 avg()
表达式以获得比例。
如果我有下面的 table,我如何将 SELECT
查询写入 return 任何类型,其中值为 1 的行的百分比大于 50 %?
所以在这种情况下,它只会 return B,因为 66% 的 TYPE B 行的值为 1.
TYPE VALUE
-------------
A 0
A 0
A 1
A 0
B 0
B 1
B 1
C 0
C 0
C 0
您可以使用条件聚合:
select type
from t
group by t
having avg(case when value = 1 then 1.0 else 0.0 end) > 0.5;
您可以在 select
上包含 avg()
表达式以获得比例。