Gor*_*way 0 sql oracle pivot string-concatenation
我有一个名为MY_MOVIES的表,有两列:MOVIES和GENRES就像这样(关系是一部电影到很多类型):
GENRE MOVIE
---------- --------------
ACTION MOVIE1
DRAMA MOVIE1
CRIME MOVIE2
DRAMA MOVIE2
CRIME MOVIE3
DRAMA MOVIE3
ACTION MOVIE4
ADVENTURE MOVIE4
FANTASY MOVIE4
ANIMATION MOVIE5
ADVENTURE MOVIE5
COMEDY MOVIE5
Run Code Online (Sandbox Code Playgroud)
该表有超过100000行.
我想要得到这样的输出:
MOVIES GENRES
---------- --------------
MOVIE1 ACTION, DRAMA
MOVIE2 CRIME, DRAMA
MOVIE3 CRIME, DRAMA
MOVIE4 ACTION, ADVENTURE, FANTASY
MOVIE5 ANIMATION, ADVENTURE, COMEDY
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用像这样的PIVOT(有了将0和1替换为类型的想法):
SELECT * FROM MY_MOVIES
PIVOT (COUNT(MOVIE) FOR GENRE in (SELECT DISTINCT(GENRE) FROM MY_MOVIES) as MOVIE_GENRES
Run Code Online (Sandbox Code Playgroud)
我一直以为我做错了.
假设您使用的是Oracle(版本11gR2或更高版本):
select movies,
listagg(genre, ', ') within group (order by genre) as genres
from my_movies
group by movies;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2738 次 |
| 最近记录: |