mysql 中空值平均_MySQL:使用空值求平均值

SQL中的聚合函数(SUM,AVG,COUNT等)始终自动排除NULL.

所以SUM(col)/ COUNT(col)= AVG(col) – 这很棒且一致.

COUNT(*)的特殊情况计算每一行.

如果组成一个带有NULL的表达式:A或B为A的B,则无论另一列为NULL,A B都将为NULL.

当存在NULL时,通常AVG(A B)<> AVG(A)AVG(B),他们也可能有不同的分母.您必须包装列:AVG(COALESCE(A,0)COALESCE(B,0))来解决这个问题,但也可能排除COALESCE(A,0)COALESCE(B,0)的情况.

根据您的代码,我建议:

select avg(coalesce(col1, 0) + coalesce(col2, 0)), count(col3) from table1

where coalesce(col1, col2) is not null -- double nulls are eliminated

group by SomeArbitraryCol

having avg(coalesce(col1, 0) + coalesce(col2, 0)) < 500 and count(col3) > 3

order by avg(coalesce(col1, 0) + coalesce(col2, 0)) asc;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值