🖥 Вопросы на знание SQL



Вопрос 1. Уровень: Junior

Есть категория «хитрых» вопросов, которые особенно любят задавать Junior-специалистам. Хотя чего уж там, любым специалистам.



Один из таких видов — вопросы по темам, на которые в повседневной жизни не обращаешь внимания и о которых не задумываешься. Просто делаешь на автомате, а на собеседовании это стреляет. Ну или на проекте, когда код начинает работать неправильно. Но это другая история…



Вопрос: Как оператор GROUP BY обрабатывает поля с NULL?



Если Вы не знаете ответ на этот вопрос, то после прочтения ответа обязательно проверьте свои проекты — может у вас где-то закралась ошибка? 😉



Ответ

Учитывая, что NULL в SQL — просто отсутствие значения, то все значения NULL при группировке попадают в одну группу. Например, пусть есть таблица:



name | score

------|-------

Vasya | 5

Petya | 10

Petya | 3

Vasya | 4

NULL | 3

NULL | 8



Тогда запрос select sum(score) from table group by name даст:



name | score

------|-------

Vasya | 9

Petya | 13

NULL | 11



@sqlhub