需求如下:
有表结构如下
id | name | create_time |
---|---|---|
1 | 王二狗 | 2018-12-25 11:22:00 |
2 | 张三疯 | 2018-12-25 11:23:00 |
2 | 李四蛋 | 2018-12-25 12:23:00 |
现在需要根据时间排序后将相同id的字段合并起来并取出其中最大的时间,sql写法如下:
select id max(t.create_time) , string_agg(name, ’ | ') as name, string_agg(cast( t.create_time as text), ’ | ') as name, ( select * from table_test order by create_time desc) as t group by t.id
查出来数据结果如下:
id | max | name | create_time |
---|---|---|---|
2 | 2018-12-25 12:23:00 | 张三疯 | 李四蛋 | 2018-12-25 12:23:00| 2018-12-25 11:23:00 |
1 | 2018-12-25 11:22:00 | 王二狗 | 2018-12-25 11:22:00 |