mysql 分组横向显示_MySQL:对列上的元素进行分组和展平

如果我有一个观点:

Movie Genre Actor

-------------------------------------------

Ocean's Twelve Crime George Clooney

Ocean's Twelve Crime Julia Roberts

Ocean's Twelve Crime Brad Pitt

Forrest Gump Drama Tom Hanks

我将如何按照电影标题进行分组,但是如此平整其他列:

Movie Genre Actor

-------------------------------------------

Ocean's Twelve Crime George Clooney, Julia Roberts, Brad Pitt

Forrest Gump Drama Tom Hanks

请注意,如果元素是等效的,则不会重复(例如Crime)

解决方法:

MySQL的

使用GROUP_CONCAT()函数:

SELECT movie, Genre, GROUP_CONCAT(Actor) AS Actor

FROM tableA

GROUP BY movie, Genre

SQL SERVER

SELECT A.movie, A.Genre, MAX(STUFF(B.ActorNames, 1, 1, '')) AS Actor

FROM tableA A

CROSS APPLY(SELECT ' ' + Actor + ',' FROM tableA B

WHERE A.movie = B.movie AND A.Genre = B.Genre

FOR XML PATH('')

) AS B (ActorNames)

GROUP BY A.movie, A.Genre

标签:sql,mysql,group-by,select,group-concat

来源: https://codeday.me/bug/20190825/1717188.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值