我有一个表格,其值如下:
Name App_pgm_apply status
a P1 AP
a P3 DN
a P5 AP
b P2 PE
b P3 AP
c P1 AP
d P2 DN
我想选择应用程序的用户作为列表。
a {P1,P3,P5}
b {P2,P3}
c {P1}
d {P2}
有人可以告诉我如何将值检索为列表吗?
我在SQL here中看到了这一点。但我没有得到如何使用PostgreSQL
答案 0 :(得分:2)
Postgres有一个array_agg
函数:
SELECT name, ARRAY_AGG(app_pgm_apply)
FROM mytable
GROUP BY name
另一方面,Oracle具有listagg
功能:
SELECT name, LISTAGG(app_pgm_apply, ',') WITHIN GROUP (ORDER BY app_pgm_apply)
FROM mytable
GROUP BY name
答案 1 :(得分:1)
尝试:
SELECT
Name,
array_to_string(array_agg(App_pgm_apply), ',')) as pgms
FROM
table1
GROUP BY
Name