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

COUNT(*) против COUNT(колонка)

Вопрос

В таблице 5 строк, в колонке phone у двух из них NULL. Что вернёт SELECT COUNT(*), COUNT(phone) FROM t?

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

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

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

Коротко

Правильный ответ: 5 и 3. COUNT() считает строки, ему безразличны значения колонок: 5.

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

  1. 5 и 5
  2. 5 и 3правильный ответ
  3. 3 и 3
  4. 5 и 2

Разбор

COUNT(*) считает строки, ему безразличны значения колонок: 5. COUNT(phone) считает только строки, где phone IS NOT NULL: 3. Вариант «5 и 2» путает: он считает как раз строки с NULL.

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

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

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