在中交换行和列

k75qkfdt  于 2021-07-27  发布在  Java
关注(0)|答案(1)|浏览(250)

我正在寻找一种方法,以某种方式将不同行的信息引入到不同的/一列中。这就是问题所在:假设我有10个不同的卖家和1000个买家。目前这是数据的结构(图片)

所以每一笔交易,我都会和卖家的身份证和从他那里买东西的买家的身份证排成一行。我想要的是每个卖家有一行,然后在一个/不同的列中我想要看到买家的id。
我用雪花和阅读不同的方式,但没有一个真正的工作。我在这个表中还有一个timestamp列,到目前为止我唯一能想到的就是

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

在那之后,我可以使用聚合函数-这不是一个真正明智的解决方案,当我有10-20个或更多的买家时也不太实用。解决这类问题的最佳方法是什么?

ffscu2ro

ffscu2ro1#

您应该能够按照snowflake文档使用listag函数来实现这一点
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

相关问题