[英]Select multiple rows into a single row
I have a table with the columns "Sequence-ID", "Event-ID", "Value" 我有一个带有“序列ID”,“事件ID”,“值”列的表
To one sequence belongs up to 5 events and each event has one value eg: 一个序列最多可包含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|
How can I select each sequence into one row, separated with semicolon? 如何将每个序列分成一行,并用分号分隔?
|Sequence-ID |Value |
|------------|-------------|
|1 |7;2;5;9;12 |
|2 |15;8;10;21;17|
Use STRING_AGG(col1) 使用STRING_AGG(col1)
select Sequence-ID , STRING_AGG(Value , ';') AS newValue
from table
GROUP BY Sequence-ID;
Maybe you need to use STRING_AGG function? 也许您需要使用STRING_AGG函数?
http://scn.sap.com/thread/3469848 http://scn.sap.com/thread/3469848
http://scn.sap.com/thread/3575156 http://scn.sap.com/thread/3575156
You can do it with STRING_AGG function, here is SQL query: 您可以使用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.