首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClickHouse聚合-按日/月/年(时间戳)分组?

ClickHouse聚合-按日/月/年(时间戳)分组?
EN

Stack Overflow用户
提问于 2021-01-25 16:48:54
回答 1查看 1.3K关注 0票数 0

在ClickHouse中有没有办法使用时间戳值按日/月/年()进行分组?在将MySQL查询重写为ClickHouse时,很难弄清楚。我的MySQL查询看起来像这样...

代码语言:javascript
复制
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中做聚合。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-01-26 01:28:25

要获取部分日期,请通过以下方式使用函数toYeartoMonthtoDayOfMonth

代码语言:javascript
复制
SELECT
    toMonth(time) AS month,
    count()
FROM 
(
    SELECT
        number,
        addDays(now(), number) AS time
    FROM numbers(8)
)
GROUP BY month

/*
┌─month─┬─count()─┐
│     1 │       7 │
│     2 │       1 │
└───────┴─────────┘
*/

要获取多个分组集,请使用WITH ROLLUP-modifier:

代码语言:javascript
复制
SELECT
    toYear(time) AS year,
    toMonth(time) AS month,
    toDayOfMonth(time) AS day,
    count()
FROM 
(
    SELECT
        number,
        addDays(now(), number) AS time
    FROM numbers(8)
)
GROUP BY
    year,
    month,
    day
    WITH ROLLUP

/*
┌─year─┬─month─┬─day─┬─count()─┐
│ 2021 │     2 │   1 │       1 │ // day
│ 2021 │     1 │  29 │       1 │ // day
│ 2021 │     1 │  31 │       1 │ // day
│ 2021 │     1 │  26 │       1 │ // day
│ 2021 │     1 │  25 │       1 │ // day
│ 2021 │     1 │  28 │       1 │ // day
│ 2021 │     1 │  30 │       1 │ // day
│ 2021 │     1 │  27 │       1 │ // day
│ 2021 │     1 │   0 │       7 │ // month
│ 2021 │     2 │   0 │       1 │ // month
│ 2021 │     0 │   0 │       8 │ // year
│    0 │     0 │   0 │       8 │
└──────┴───────┴─────┴─────────┘
*/
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65881507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档