Нужно построить график регистраций по часам из таблицы users(created_at), где created_at типа timestamp. Какой бакет лучше использовать?
A
DATE_TRUNC('day', created_at)B
DATE_TRUNC('hour', created_at)C
DATE_TRUNC('minute', created_at)D
EXTRACT(HOUR FROM created_at)Правильный ответ. Часовой бакет делается через
DATE_TRUNC('hour', ...), чтобы сохранить и дату, и час.Разбор
Если извлечь только час через EXTRACT(HOUR FROM created_at), вы потеряете дату и смешаете разные дни в один и тот же час. DATE_TRUNC('hour', created_at) сохраняет дату и обнуляет минуты/секунды, создавая корректные часовые бакеты.
Проверь себя · 1/3разбор после ответа
Для сравнения метрик по неделям нужно получить начало предыдущей недели. Какое выражение вернёт начало предыдущей недели относительно
current_date?Ещё вопросы по теме «Даты и время»
- В таблице `events(user_id, created_at)` поле `created_at` типа `timestamp`. Как посчитать количество событий по дням?
- Есть таблица `orders(created_at, amount)`, где `created_at` типа `timestamp`. Как посчитать выручку по месяцам?
- В таблице `events(created_at)` нужно выбрать события за последние 7 дней относительно текущего момента (`current_timestamp`). Какое условие в `WHERE` корректнее?
- Как получить начало текущей недели (недельный бакет) по текущей дате в PostgreSQL?
- Колонка `created_at` имеет тип `timestamp`. Какой тип данных вернёт `DATE_TRUNC('day', created_at)`?
- Все вопросы по «Даты и время» →