【发布时间】:2021-04-29 01:34:54
【问题描述】:
ClickHouse 中是否有办法使用时间戳值执行 GROUP BY DAY/MONTH/YEAR()?在将 MySQL 查询重写为 ClickHouse 时很难弄清楚。我的 MySQL 查询看起来像这样......
SELECT COUNT(this), COUNT(that) FROM table WHERE something = x AND stamp BETWEEN startdate AND enddate
SELECT COUNT(this), COUNT(that) FROM table WHERE something = x AND stamp BETWEEN startdate AND enddate GROUP BY DAY(stamp)
SELECT COUNT(this), COUNT(that) FROM table WHERE something = x AND stamp BETWEEN startdate AND enddate GROUP BY MONTH(stamp)
SELECT COUNT(this), COUNT(that) FROM table WHERE something = x AND stamp BETWEEN startdate AND enddate GROUP BY YEAR(stamp)
在 MySQL 中相当简单和缓慢,但我不知道如何在 ClickHouse 中进行聚合。
谢谢!
【问题讨论】:
-
怎么知道哪个计数属于哪一天、哪一个月、哪一年等
-
就是这样。 MySQL 知道并具有 DAY()、MONTH() 和 YEAR() 函数来恭敬地将时间戳转换为 GROUP BY 子句中的每一天、每一个月或每一年。 ClickHouse 没有。想知道如何为 ClickHouse 重写它。谢谢!
标签: mysql group-by aggregate aggregate-functions clickhouse