【发布时间】:2021-05-20 14:34:07
【问题描述】:
我试图弄清楚如何在 Clickhouse 中创建一个名为“我想要的”的列,如下表所示:
| Category | Row Number | What I have | What I want |
|---|---|---|---|
| A | 1 | 0 | 0 |
| A | 2 | 1 | 1 |
| B | 3 | 0 | 1 |
| B | 4 | 0 | 1 |
| A | 5 | 3 | 3 |
| B | 6 | 0 | 3 |
| B | 7 | 0 | 3 |
| A | 8 | 2 | 2 |
| B | 9 | 0 | 2 |
有两个类别 A 和 B。 我希望 B 类别能够“记住”A 类别的最新值。
有一个列用于对所有记录进行排序:行号。
我发现了一个功能 arrayFill,看起来很有希望,但不幸的是,我的服务器版本 (19.14.11.16) 不支持它,而且它不可能很快更新。 p>
我想 clickhouse 数组应该有一些技巧。但我没有设法找到方法。有没有clickhouse-ninja可以给我提示如何处理它?
附言事实上,B 类不是零填充的,但我提供它只是为了简化我的问题。
【问题讨论】:
-
它适用于数组、邻居、窗口函数。问题不清楚如何理解“最新”是什么意思,SQL 中的行是无序的。
-
你有指定排序的列吗?
-
谢谢大家!是的,我忘了说有一个列对所有记录进行排序。在我的特殊情况下,有两个这样的列 user_id 和 timestamp 但让我们假设只有一个我称之为行号。
标签: sql clickhouse