将列数据排列成postgres中的行

Arrange column data into rows in postgres

我有一个 table,其中包含以下数据:-

t,me,ma,mi,sd,data_id
'2010-04-14 00:00:00','12.6941','12.6941','12.6941','12.6941',1
'2010-04-14 00:00:00','12.3851','12.3851','12.3851','12.3851',2
'2010-04-14 00:00:00','11.6145','11.6145','11.6145','11.6145',3
'2010-04-14 00:10:00','12.3890','12.3890','12.3890','12.3890',1
'2010-04-14 00:10:00','12.1836','12.1836','12.1836','12.1836',2
'2010-04-14 00:10:00','11.3887','11.3887','11.3887','11.3887',3

我希望数据这样排列:-

t,1_me,1_ma,1_mi,1_sd,2_me,2_ma,2_mi,2_sd,3_me,3_ma,3_mi,3_sd
'2010-04-14 00:00:00','12.6941','12.6941','12.6941','12.6941','12.3851','12.3851','12.3851','12.3851','11.6145','11.6145','11.6145','11.6145'
'2010-04-14 00:10:00','12.3890','12.3890','12.3890','12.3890','12.1836','12.1836','12.1836','12.1836','11.3887','11.3887','11.3887','11.3887'

谁能帮我订购这些数据?

select t,listagg(me||','||ma||','||mi||','||sd,',') within group(order by t)  
from table_name 
group by t  
order by t;

我在 Oracle 中使用过这个,同样你可以在 Postgres 中使用 string_agg() 等价的函数。