繁体   English   中英

选择多行成一行

[英]Select multiple rows into a single row

我有一个带有“序列ID”,“事件ID”,“值”列的表

一个序列最多可包含5个事件,每个事件都有一个值,例如:

|Sequence-ID | Event-ID | Value |
|------------|----------|-------|
|1           |         1|      7|
|1           |         2|      2|
|1           |         3|      5|
|1           |         4|      9|
|1           |         5|     12|
|2           |         1|     15|
|2           |         2|      8|
|2           |         3|     10|
|2           |         4|     21|
|2           |         5|     17|

如何将每个序列分成一行,并用分号分隔?

|Sequence-ID |Value        |
|------------|-------------|
|1           |7;2;5;9;12   |
|2           |15;8;10;21;17|

使用STRING_AGG(col1)

   select Sequence-ID , STRING_AGG(Value , ';')  AS newValue
    from table
    GROUP  BY Sequence-ID;

也许您需要使用STRING_AGG函数?

http://scn.sap.com/thread/3469848

http://scn.sap.com/thread/3575156

您可以使用STRING_AGG函数来完成此操作,这是SQL查询:

SELECT ID, STRING_AGG(Value, ';')  AS Names
FROM TAB
GROUP BY Sequence-ID;

您可以这样:

SELECT Sequence-ID, string_agg(Value::text, ';'::text) from table group by Sequence-ID

暂无
暂无

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

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