我的桌子是这样的
C1 Bool Count
A TRUE 5
A FALSE 5
B FALSE 6
C TRUE 2
C FALSE 8
我想计算Bool = True中的计数部分,按C1分组。理想的结果应该是
C1 Portion
A 0.5
B 0
C 0.2
我不太确定如何实现这一目标。非常感谢您的帮助
答案 0 :(得分:1)
您可以进行条件聚合:
select c1, sum(case when bool then count else 0 end) / sum(count) ratio
from mytable
group by c1
这假设bool
的数据类型为bool[ean]
,因此可以在条件谓词中直接使用它。
请注意,bool
和count
都是MySQL中的语言关键字,因此列名选择不当(如果按原样运行,上述查询将出错)。