У меня есть запрос в Clickhouse, который подсчитывает строки с 15-минутным интервалом:
SELECT
toStartOfInterval(table.timestamp, INTERVAL 15 minute) AS interval_start,
COUNT(*),
station,
ticket_name
FROM table
where date between '2018-01-01' and '2022-12-31'
GROUP BY interval_start, station, ticket_name
order by interval_start
timestamp
имеет следующий формат: 2018-01-01T05:00:00
Я хочу добавить еще одно условие, чтобы получить все значения, где время находится в диапазоне от 05:00:00
до 10:00:00
. Как мне это сделать?
Вы можете добавить дополнительное условие в предложение WHERE, используя функцию EXTRACT, чтобы извлечь часовой компонент временной метки и проверить, находится ли он между 5 и 10. Вот версия вашего запроса:
SELECT
toStartOfInterval(table.timestamp, INTERVAL 15 minute) AS interval_start,
COUNT(*),
station,
ticket_name
FROM table
WHERE date BETWEEN '2018-01-01' AND '2022-12-31'
AND EXTRACT(hour FROM table.timestamp) BETWEEN 5 AND 10
GROUP BY interval_start, station, ticket_name
ORDER BY interval_start
Или добавьте:
AND toHour(table.timestamp) >= 5 AND toHour(table.timestamp) <= 10