如果我有观点:
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
)
答案 0 :(得分:3)
<强>的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
答案 1 :(得分:2)
您正在寻找GROUP_CONCAT
select Movie, Genre, group_concat(Actor separator ', ') as `Actors`
from
movies
group by Movie, Genre;
答案 2 :(得分:1)
您需要group_concat并按http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat分组 试试这个
select Movie, Genre, group_concat(Actor) from view_name group by Movie