gpt4 book ai didi

sql - 如何在 Snowflake 的枢轴中使用 LISTAGG?

转载 作者:行者123 更新时间:2023-12-05 08:35:44 26 4
gpt4 key购买 nike

有一个包含以下数据的表 (database.schema.table1):

transaction_id |  state | transaction_type | date_timestamp
1 | CA | Payment | 12/1/2022 01:00:00
1 | CA | Payment | 12/1/2022 02:00:00
1 | MA | Payment | 12/1/2022 01:00:00
2 | MA | Refund | 12/1/2022 01:00:00
3 | NY | Payment | 12/1/2022 01:00:00
4 | MA | Payment | 12/1/2022 03:00:00

我希望我的结果集看起来像这样:

   transaction_id | transaction_type | CA                                     | NY                 | MA
1 | Payment | 12/1/2022 01:00:00, 12/1/2022 02:00:00 | | 12/1/2022 01:00:00
2 | Refund | | 12/1/2022 01:00:00 |
3 | Payment | | 12/1/2022 01:00:00 |
4 | Payment | 12/1/2022 03:00 | |

我尝试了以下查询,但由于某种原因它似乎在 Snowflake 中不起作用(并且尝试了我尝试在线谷歌搜索的一些变体):

   select *
from database.schema.table1 t1
pivot (listagg(t1.time, '|') for t1.state in ('CA', 'MA', 'NY')) as p;

有什么方法可以尝试在此数据透视表中使用 listagg?提前致谢!

最佳答案

尝试使用显式枢轴操作:

SELECT transaction_id, 
transaction_type,
LISTAGG(CASE WHEN state = 'CA' THEN date_timestamp END, ', ') AS CA,
LISTAGG(CASE WHEN state = 'NY' THEn date_timestamp END, ', ') AS NY,
LISTAGG(CASE WHEN state = 'MA' THEn date_timestamp END, ', ') AS MA
FROM tab
GROUP BY transaction_id,
transaction_type

关于sql - 如何在 Snowflake 的枢轴中使用 LISTAGG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73228647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com