计算SQL平均值

时间:2020-10-17 21:05:51

标签: mysql sql count sum pivot

我的桌子是这样的

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

我不太确定如何实现这一目标。非常感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您可以进行条件聚合:

select c1, sum(case when bool then count else 0 end) / sum(count) ratio
from mytable
group by c1

这假设bool的数据类型为bool[ean],因此可以在条件谓词中直接使用它。

请注意,boolcount都是MySQL中的语言关键字,因此列名选择不当(如果按原样运行,上述查询将出错)。