Mic*_*ael 7 sql snowflake-cloud-data-platform
我有一个值表,其中每个键值都有可变数量的行。我想输出一个表,将这些行值连接到每个不同的键值上。
输入表
| KEY_ID | SOURCE_VAL |
|---|---|
| 1 | A |
| 1 | 乙 |
| 1 | C |
| 2 | d |
| 3 | e |
| 3 | F |
目标输出表
| KEY_ID | 输出值 |
|---|---|
| 1 | 甲、乙、丙 |
| 2 | d |
| 3 | e,f |
在 Snowflake SQL 中编写此代码最有效的方法是什么?
Luk*_*zda 16
可以用LISTAGG来完成:
SELECT KEY_ID,
LISTAGG(SOURCE_VAL, ',') WITHIN GROUP(ORDER BY SOURCE_VAL) AS OUTPUT_VAL
FROM tab
GROUP BY KEY_ID
Run Code Online (Sandbox Code Playgroud)