【发布时间】:2021-04-18 17:45:16
【问题描述】:
假设我有一个user_id 类型为Int32 和login_time 为DateTime 格式为UTC 的表。 user_id 不是唯一的,所以SELECT user_id, login_time FROM some_table; 给出以下结果:
┌─user_id─┬──login_time─┐
│ 1 │ 2021-03-01 │
│ 1 │ 2021-03-01 │
│ 1 │ 2021-03-02 │
│ 2 │ 2021-03-02 │
│ 2 │ 2021-03-03 │
└─────────┴─────────────┘
如果我运行SELECT COUNT(*) as count, toDate(login_time) as l FROM some_table GROUP BY l,我会得到以下结果:
┌─count───┬──login_time─┐
│ 2 │ 2021-03-01 │
│ 2 │ 2021-03-02 │
│ 1 │ 2021-03-03 │
└─────────┴─────────────┘
我想重新格式化结果以每周显示COUNT,而不是像我目前所做的那样每天显示。
我对上述示例的结果可能如下所示:
┌──count──┬──year─┬──month──┬─week ordinal┐
│ 5 │ 2021 │ 03 │ 1 │
│ 0 │ 2021 │ 03 │ 2 │
│ 0 │ 2021 │ 03 │ 3 │
│ 0 │ 2021 │ 03 │ 4 │
└─────────┴───────┴─────────┴─────────────┘
我浏览了文档,发现了一些有趣的功能,但没有设法让它们解决我的问题。
我以前从未与clickhouse 合作过,对 SQL 的经验也不是很丰富,这就是我在这里寻求帮助的原因。
【问题讨论】:
-
“周序数”是相对于每个月的开始还是相对于年初?
-
@datosula:相对于每个月的开始
标签: sql clickhouse