比如有个表有时间字段 t。我想按临近的时间来进行 group by。比如「临近」的定义为「在五分钟内」,那么把「12:02」和「11:58」放到同一个组里。当然同一个组里可以有很多个时间,它们的最大差值不超过指定的时间差。
抛个砖,不是最准确的,因为是按照绝对时间group的(例如 10:00:00, 10:05:00) 如果要按照当前时间往前推5分钟,可以稍作修改 SELECT TIMESTAMP WITH TIME ZONE 'epoch' + INTERVAL '1 second' * round((extract('epoch' from t) / 300) * 300) as t, count(something) FROM some table WHERE … GROUP BY round(extract('epoch' from t) / 300), name
抛个砖,不是最准确的,因为是按照绝对时间group的(例如 10:00:00, 10:05:00)
如果要按照当前时间往前推5分钟,可以稍作修改