提问人:Bocean 提问时间:11/17/2023 更新时间:11/17/2023 访问量:29
在 SQL 中从多行创建一个新数组
Create a new array from multiple rows in SQL
问:
我的标题可能没有很好地描述我想要做的事情,但从本质上讲,我想将多行组合成一个数组(或类似的东西)到一个新列中。
我真的只需要多行中的内容存在于一行中,特定于每个 id。
我的数据列出了用户,每一行都是新购买的(以下示例):
编号 | 购买记录 |
---|---|
1 | 苹果 |
1 | 香蕉 |
1 | 蓝莓 |
2 | 香蕉 |
2 | 苹果 |
我想创建购买的“路径”,因此输出如下所示:
编号 | 购买路径 |
---|---|
1 | 苹果, 香蕉, 蓝莓 |
2 | 香蕉, 苹果 |
或者甚至像这样也没关系:
编号 | 购买1 | 购买2 | 购买3 |
---|---|---|---|
1 | 苹果 | 香蕉 | 蓝莓 |
2 | 香蕉 | 苹果 | 零 |
我尝试了一堆随机的东西(不同的数组函数、枢轴),但没有接近。有什么想法吗?
答:
0赞
Littlefoot
11/17/2023
#1
根据您以前的帖子,您似乎使用了 Teradata。如果是这样,可能会有所帮助。XMLAGG
select id,
trim(trailing ',' from (xmlagg(purchase_history || ',' order by purchase_history) (varchar(500))))
from purchase
group by id;
评论