选择查询具有给定值的行的百分比?

Ste*_*lsh 4 sql oracle select percentage

如果我有下表,如何编写SELECT查询以返回任何TYPE,其中值为1的行的百分比大于50%?所以在这种情况下,它只返回B,因为TYPE B的66%的行的值为1.

TYPE  VALUE
-------------
A     0
A     0
A     1
A     0
B     0
B     1
B     1
C     0
C     0
C     0
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 6

您可以使用条件聚合:

select type
from t
group by t
having avg(case when value = 1 then 1.0 else 0.0 end) > 0.5;
Run Code Online (Sandbox Code Playgroud)

您可以在avg()表达式中包含表达式select以获得比例.