gpt4 book ai didi

sql - 如何连接每个组的某一列中的所有字符串

转载 作者:行者123 更新时间:2023-12-02 01:13:35 24 4
gpt4 key购买 nike

假设我有这张表[Table1]

Name    Mark
------- ------
ABC 10
DEF 10
GHI 10
JKL 20
MNO 20
PQR 30

我的 SQL 语句应该是什么来检索如下所示的记录:(按[标记]分组)。我已经完成了第 1 列和第 2 列,但不知道如何完成第三列(将 [name] 与相同的 [mark] 连接起来)

mark count     names
---- ----- -----------
10 3 ABC,DEF,GHI
20 2 JKL,MNO
30 1 PQR

我正在使用 Microsoft SQL。请帮忙。谢谢

最佳答案

如果是 MS SQL 2005 或更高版本。

declare @t table([name] varchar(max), mark int)

insert @t values ('ABC', 10), ('DEF', 10), ('GHI', 10),
('JKL', 20), ('MNO', 20), ('PQR', 30)


select t.mark, COUNT(*) [count]
,STUFF((
select ',' + [name]
from @t t1
where t1.mark = t.mark
for xml path(''), type
).value('.', 'varchar(max)'), 1, 1, '') [values]
from @t t
group by t.mark
<小时/>

输出:

mark        count       values
----------- ----------- --------------
10 3 ABC,DEF,GHI
20 2 JKL,MNO
30 1 PQR

关于sql - 如何连接每个组的某一列中的所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6579440/

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