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

时间:2015-12-21 12:37:57

标签: 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

1 个答案:

答案 0 :(得分:6)

您可以使用条件聚合:

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

您可以在avg()上添加select表达式来获取比例。