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() 表达式以获得比例。