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