【发布时间】:2020-12-09 01:50:47
【问题描述】:
我的数据如下:
| user | eventorder| postal|
|:---- |:---------:| -----:|
| A | 1 | 60616 |
| A | 2 | 10000 |
| A | 3 | 60616 |
| B | 1 | 20000 |
| B | 2 | 30000 |
| B | 3 | 40000 |
| B | 4 | 30000 |
| B | 5 | 20000 |
我需要解决的问题:有多少不同的停靠点,直到用户旅行的每个事件顺序?
理想的结果应该是这样的:
| user | eventorder| postal| travelledStop|
|:---- |:---------:| -----:| ------------:|
| A | 1 | 60616 | 1 |
| A | 2 | 10000 | 2 |
| A | 3 | 60616 | 2 |
| B | 1 | 20000 | 1 |
| B | 2 | 30000 | 2 |
| B | 3 | 40000 | 3 |
| B | 4 | 30000 | 3 |
| B | 5 | 20000 | 3 |
以 A 为例,当事件顺序为 1 时,它仅行进 60616 - 1 站。 当事件顺序为 2 时,它已行驶 60616 和 10000 - 2 站。 当事件顺序为 3 时,此用户经过的不同站点是 60616 和 10000。- 2 个站点。
我不允许将 count distinct 与 partition by order by 一起使用。我想做一些类似 count(distinct(postal)) 的事情(按用户顺序按 eventorder 分区),但这是不允许的。
有谁知道如何解决这个问题?非常感谢!
【问题讨论】:
标签: sql data-science snowflake-cloud-data-platform data-analysis data-partitioning