【发布时间】:2021-04-16 00:00:29
【问题描述】:
我在雪花中有一张供不同用户使用的表格。如果有“Z”值,我需要更新值列。 Z 将被替换为与该用户最接近的非 Z 值。
原表:
| User | Order | Value |
| ---- | ------| ----- |
| A | 1 | X |
| A | 2 | Y |
| A | 3 | Z |
| A | 4 | Z |
| A | 5 | W |
| A | 6 | Z |
| B | 1 | Y |
| B | 2 | Z |
| B | 3 | Z |
目标表:
| User | Order | Value |
| ---- | ------| ----- |
| A | 1 | X |
| A | 2 | Y |
| A | 3 | Y |
| A | 4 | Y |
| A | 5 | W |
| A | 6 | W |
| B | 1 | Y |
| B | 2 | Y |
| B | 3 | Y |
我写了一个递归更新查询。但是原始表有数百万行。这将需要非常大量的递归,这在 Snowflake 中是不允许的。还有其他方法可以实现我的目标吗?我正在考虑窗口功能,但不知道如何实现它。
【问题讨论】:
标签: sql data-science etl snowflake-cloud-data-platform data-analysis