[英]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函数来完成此操作,这是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.