我在做什么 :
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。
谢谢