Mysql 用SQL计算平均值

Mysql 用SQL计算平均值,mysql,sql,count,sum,pivot,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中count的部分,按C1分组。理想的结果应该是 C1 Portion A 0.5 B 0 C 0.2 我真的不知道如何做到这一点。非常感谢您的帮助您可以执行条件聚合: select c1, sum(case whe

我的桌子是这样的

C1   Bool    Count

A    TRUE     5
A    FALSE    5
B    FALSE    6
C    TRUE     2
C    FALSE    8
我想计算Bool=True中count的部分,按C1分组。理想的结果应该是

C1   Portion
A      0.5
B       0
C      0.2

我真的不知道如何做到这一点。非常感谢您的帮助

您可以执行条件聚合:

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中的语言关键字,因此列名称的选择很差(如果按原样运行,上述查询将出错)