You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ClickHouse按15分钟间隔分组统计报错,求正确SQL写法

按15分钟间隔统计事件数的ClickHouse正确实现方案

问题原因

你执行的SQL报错是因为ClickHouse不支持date_part函数,这是PostgreSQL等数据库的语法,需要替换为ClickHouse原生日期函数。

方案一:使用date_trunc直接指定15分钟间隔

ClickHouse的date_trunc函数支持直接传入间隔参数,一步到位截断到15分钟起始时间:

SELECT 
    date_trunc('15 minute', timestamp) AS interval_start,
    COUNT(*) AS count
FROM my_table
GROUP BY interval_start
ORDER BY interval_start

方案二:使用toStartOfInterval函数(推荐)

这是ClickHouse专门用于按固定间隔取起始时间的函数,语义更清晰:

SELECT 
    toStartOfInterval(timestamp, INTERVAL 15 MINUTE) AS interval_start,
    COUNT(*) AS count
FROM my_table
GROUP BY interval_start
ORDER BY interval_start

兼容原逻辑的手动计算方案

如果想保留你原本的计算逻辑,可将date_part替换为ClickHouse的toMinute函数:

SELECT 
    date_trunc('hour', timestamp) + toIntervalMinute(floor(toMinute(timestamp)/15)*15) AS interval_start,
    COUNT(*) AS count
FROM my_table
GROUP BY interval_start
ORDER BY interval_start

以上三种方案都能得到你期望的结果:

interval_start       count
2023-01-25 05:00:00  5
2023-01-25 05:15:00  3

内容的提问来源于stack exchange,提问作者barney stinson 2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 18:02:59