如果我有下表,如何编写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
答案 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
表达式来获取比例。