В ClickHouse есть таблица events (user_id, ts, event_type) на 10 млрд строк. Нужно посчитать приблизительное число уникальных юзеров за день. Какой запрос выбрать?
SQLhardsenior
Варианты ответа
SELECT toDate(ts) AS d, uniq(user_id) FROM events GROUP BY d — uniq даёт ±1% ошибку, но в 10-100× быстрее
SELECT toDate(ts) AS d, COUNT(DISTINCT user_id) FROM events GROUP BY d
SELECT toDate(ts) AS d, uniqExact(user_id) FROM events GROUP BY d
Сначала SELECT DISTINCT user_id, потом COUNT(*) — быстрее чем COUNT(DISTINCT)
Разбор ответа
Подробный разбор с объяснением «почему правильный ответ верный» и почему остальные неверны — после регистрации.
2475 вопросов с разбором, quiz-режим с проверкой, AI-собес и подготовка к интервью аналитика.