Запрос: SELECT country, COUNT(DISTINCT user_id) FROM events GROUP BY country. Таблица содержит повторяющиеся строки. Что посчитает функция?

AРазницы нет: COUNT(DISTINCT user_id) и COUNT(user_id) дают одинаковый результат при наличии GROUP BY
BCOUNT(DISTINCT user_id) не работает внутри GROUP BY — нужен отдельный подзапрос
CВ каждой группе считаются уникальные user_id внутри этой группы, а не по всей таблице
DCOUNT(DISTINCT user_id) с GROUP BY считает уникальных пользователей по всей таблице, игнорируя разбивку
Правильный ответ. COUNT(DISTINCT col) внутри GROUP BY считает уникальные значения столбца в пределах каждой группы отдельно, а не по всей таблице.

Разбор

COUNT(DISTINCT expr) всегда работает в границах текущей группы. При GROUP BY country уникальные user_id считаются отдельно для каждой страны. Если пользователь совершил события в двух странах, он будет засчитан в обеих группах — это ожидаемое поведение. Никакого ограничения на сочетание DISTINCT и GROUP BY нет.

Проверь себя · 1/3разбор после ответа
В таблице users есть колонка middle_name, в которой часто хранится NULL. Что вернёт выражение COUNT(middle_name)?
Тренировать SQL в Telegram

Ещё вопросы по теме «Агрегация, GROUP BY и HAVING»