Riy*_*sal 1 sql postgresql string-aggregation postgresql-9.4
我有一个包含三列的服务表。
服务
sr_id lang alias
1 EN A
1 PA B
1 HI C
2 EN D
2 HI E
Run Code Online (Sandbox Code Playgroud)
现在,我想输出每个服务 id、lang 和别名列,这些列将是服务别名的串联。
示例输出 -
SR_ID lang alias
1 EN A,B,C
1 PA A,B,C
1 HI A,B,C
2 EN D,E
2 HI D,E
Run Code Online (Sandbox Code Playgroud)
我如何使用 PostgreSQL 9.4 做到这一点?
小智 5
如果您不需要对它们进行排序,您可以使用:
select sr_id, lang, string_agg(alias, ',') over () as alias
from services
order by sr_id;
Run Code Online (Sandbox Code Playgroud)
否则你需要:
select s.sr_id, s.lang, t.alias
from services s
join (
select sr_id, string_agg(alias, ',' order by alias) as alias
from services
group by sr_id
) t on t.sr_id = s.sr_id
order by s.sr_id;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3947 次 |
最近记录: |