Выбор ответа Junior GROUP BY и агрегаты спрашивают часто обновлено

AVG и NULL

Вопрос

В колонке score значения 10, NULL, 20. Что вернёт SELECT AVG(score) FROM t?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: 15. Агрегаты, кроме COUNT(), пропускают NULL.

Варианты ответа

  1. 15правильный ответ
  2. 10
  3. NULL
  4. Ошибку: в колонке есть NULL

Разбор

Агрегаты, кроме COUNT(*), пропускают NULL. AVG делит сумму известных значений на их количество: (10 + 20) / 2 = 15. Ответ 10 получился бы, если бы NULL считался нулём, для этого пишут AVG(COALESCE(score, 0)). NULL вернулся бы, только если бы все значения были NULL. Ошибки нет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме