gpt4 book ai didi

mysql - 来自一列的分组伙伴

转载 作者:行者123 更新时间:2023-11-29 10:27:39 26 4
gpt4 key购买 nike

我在一个名为claim.files的表中有两列,第一列名为“claim”并包含 claim 文件编号ex。 4355、6444、7674 等,第二个名为“合作伙伴”,包含 ex 的合作伙伴代码。 8393、4783、38283。 claim 文件编号是唯一的,但每个 claim 文件可以有更多合作伙伴,因此我想运行一个选择,可以将每个 claim 文件的所有合作伙伴分组。如果我运行此“从claim.files中选择声明,合作伙伴,其中声明在(4355,6444,7674)按声明,合作伙伴分组”,如果有更多合作伙伴,它将重复该声明。

我希望结果如下:

claim  partners
4355 57878, 45874, 58977

如果我运行以下代码,它将重复 claim 编号

select claim, partner from claim.files where claim in (4355, 6444, 7674) group by claim, partner

如果我运行上面的选择,结果将是这样的

 claim  partners
4355 57878
4355 45874
4355 58977

最佳答案

如果您想为每个声明选择以逗号分隔的合作伙伴,则可以使用 group_concat :

select claim, group_concat(partner separator ',') as partners
from files
where snr in (4355, 6444, 7674)
group by claim;

Demo :

| claim |          partners |
|-------|-------------------|
| 4355 | 57878,45874,58977 |
<小时/>

更新:如果您使用的是 SQL Server,则可以这样做:

SELECT
f1.claim,
STUFF((
SELECT ',' + CAST(f2.partner AS NVARCHAR(50))
FROM files as f2
where snr in (4355, 6444, 7674)
and f1.claim = f2.claim
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') AS partners
FROM files as f1
where snr in (4355, 6444, 7674)
group by f1.claim;

-SQL Server demo

| claim |          partners |
|-------|-------------------|
| 4355 | 57878,45874,58977 |

关于mysql - 来自一列的分组伙伴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47993888/

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