交换中的行和列

时间:2020-07-31 06:21:39

标签: sql snowflake-cloud-data-platform

我正在寻找一种以某种方式将不同行的信息带入不同/一列的方法。 这就是问题: 假设我有10个不同的卖家和1000个买家。 当前,这是数据的结构形式(图片) enter image description here 因此,对于每笔交易,我都有一个带有卖方和买方的编号的行,买方从他那里买了东西。我想要的是每个卖方有1行,然后在一个/不同的列中查看买方的ID。

我正在使用雪花并且了解了不同的方法,但是它们都不起作用。 我在此表中也有一个timestamp列,到目前为止,我唯一能想到的就是

SELECT seller,
       rank()over(partition by seller order by purchase_date desc)

之后,我可以使用聚合函数-这不是一个明智的解决方案,并且当我有10 -20个或更多购买者时也不是实际可行的。 解决这类问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

根据雪花文档,您应该可以使用listagg函数来做到这一点

https://docs.snowflake.com/en/sql-reference/functions/listagg.html

--This will create a concatenated list of buyers seperated by a comma
select seller
       ,listagg(buyer,',') within group(order by buyer)
  from table
group by seller
相关问题