gpt4 book ai didi

SQL - 使用 Group By 时以逗号分隔数据

转载 作者:行者123 更新时间:2023-12-01 23:24:53 25 4
gpt4 key购买 nike

我正在使用 SQL Server 和 TSQL:

当在另一列上使用分组依据时,我想做的是在一列上用逗号分隔值。请参阅下面的数据示例。

col1 --- col21121     abc1123     aee1335     afg1121     def1121     abc

我想在“col1”上分组并计算记录数,但如果数据不同,我也想在 col2 上连接。例如,使用值“1121”作为引用,请参见下面的数据输出。

qty --- col1 --- col23       1121     abc, def1       1123     aee1       1335     afg

我想过可能使用 COALESCE,但我不确定在另一列上使用 group by 时如何实现它。

如有任何帮助,我们将不胜感激。

最佳答案

这是一个完整的、经过测试的、有效的示例。

create table tmp (col1 varchar(100), col2 varchar(100));
insert into tmp values ('1121', 'abc');
insert into tmp values ('1123', 'aee');
insert into tmp values ('1335', 'afg');
insert into tmp values ('1121', 'def');
insert into tmp values ('1121', 'abc');

SELECT
distinct r.col1,
STUFF((SELECT distinct ','+ a.col2
FROM tmp a
WHERE r.col1 = a.col1
FOR XML PATH(''), TYPE).value('.','VARCHAR(max)'), 1, 1, ''),
(select COUNT(*) cnt from tmp a where r.col1 = a.col1) cnt
FROM tmp r

结果

1121    abc,def 3
1123 aee 1
1335 afg 1

引用资料:使用了 OMG Ponies 的回答 here作为指南。

关于SQL - 使用 Group By 时以逗号分隔数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11345782/

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