有些时间算法需要补全所有时间窗口内的时间行,简单的方法是一个表里提前生成时间窗口内的所有时间再join这个表。
外网找到了clickhouse生成这样的语句,ClickHouse tips #8: Generating time-series on ClickHouse・Tinybird
WITH
toStartOfDay(toDate('2021-01-01')) AS start,
toStartOfDay(toDate('2021-01-02')) AS end
SELECT arrayJoin(arrayMap(x -> toDateTime(x), range(toUInt32(start), toUInt32(end), 3600))) as hh