Что я делаю:
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);
ВЫХОД Я ОЖИДАЛ:
AVG = (10 + 20 + 30)/5 = 12
ВЫХОД MYSQL:
AVG = (10 + 20 + 30)/3 = 20
В идеале я хотел бы, чтобы MYSQL получал сумму из 5 строк и делил ее на 5, но делил ее только на 3 (строки, отличные от NULL)
Почему это происходит и что я могу сделать, чтобы получить правильный AVG, т.е. 60/5? PS: Я не могу сделать поле меток NOT NULL, в моем дизайне db поле меток должно быть NULL.
Спасибо