【发布时间】:2018-08-08 16:57:29
【问题描述】:
我想使用 postgresql 从同一组(区域)中的其他人那里获得一个早期和最近的日期。
+----+--------+------------+
| id | region | date1 |
+----+--------+------------+
| 1 | a | 2017-01-01 |
| 2 | a | 2017-01-07 |
| 3 | a | 2017-03-03 |
| 4 | a | 2017-04-03 |
| 5 | b | 2017-02-02 |
| 6 | b | 2017-02-28 |
+----+--------+------------+
我汇总并得到了一个下表,但失去了下一步。
SELECT string_agg(id, ';') AS ids, region,
STRING_AGG(to_char(date1, 'YYYY-MM-DD'),';') AS dates
FROM table1
GROUP BY region
+---------+--------+---------------------------------------------+
| ids | region | dates |
+---------+--------+---------------------------------------------+
| 1;2;3;4 | a | 2017-01-01;2017-01-07;2017-03-03;2017-04-03 |
| 5;6 | b | 2017-02-02;2017-02-28 |
+---------+--------+---------------------------------------------+
这里我不知道如何构造下表。
+----+--------+------------+----------------+
| id | region | date1 | neareast_early |
+----+--------+------------+----------------+
| 1 | a | 2017-01-01 | |
| 2 | a | 2017-01-07 | 2017-01-01 |
| 3 | a | 2017-03-03 | 2017-01-07 |
| 4 | a | 2017-04-03 | 2017-03-03 |
| 5 | b | 2017-02-02 | |
| 6 | b | 2017-02-28 | 2017-02-02 |
+----+--------+------------+----------------+
【问题讨论】:
-
请检查我的回答,如果它对您有帮助,请接受它或为给定的解决方案提供相关反馈(cmets)。请阅读:stackoverflow.com/help/someone-answers 以了解为什么它很重要。
标签: sql postgresql date