mysql avg 空_奇怪的MySQL AVG()异常NULL值

我在做什么 :

create table sample (id INT(10) PRIMARY KEY AUTO_INCREMENT,name varchar(255),marks INT(10));

insert into sample (name,marks) VALUES('sam',10);

insert into sample (name,marks) VALUES('sam',20);

insert into sample (name,marks) VALUES('sam',NULL);

insert into sample (name,marks) VALUES('sam',NULL);

insert into sample (name,marks) VALUES('sam',30);

select AVG(marks) from sample GROUP BY(name);

我预期的输出:

平均=(10 + 20 + 30)/ 5 = 12

MYSQL的输出:

平均值=(10 + 20 + 30)/ 3 = 20

理想情况下,我想要的是MYSQL应该得到5行的总和并除以5,但是它只能除以3(非NULL行)

为什么会发生这种情况,我该怎么做才能获得正确的AVG,即60/5?PS:我不能使标记字段NOT NULL,在我的数据库设计中,标记字段允许为NULL。

谢谢

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值