繁体   English   中英

如何在PostgreSQL和Oracle数据库中选择值作为列表?

[英]How to select values as a list in PostgreSQL and Oracle Database?

我有一个表,值如下:

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中看到了这一点 但是我没有得到如何使用它的PostgreSQL

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 

尝试:

SELECT 
  Name,
  array_to_string(array_agg(App_pgm_apply), ',')) as pgms 
FROM
  table1
GROUP BY 
  Name

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM