PostgreSQL中最早,最早的时间

时间:2018-12-11 16:23:07

标签: postgresql datetime

我确实有一个表格,其中包含有关用户以及他们与我们联系的时间的信息。 例如

ID | User | contct_time
1  | U1   | 2008-08-02 15:57:02+02
2  | U1   | 2008-08-02 15:57:02+02
3  | U1   | 2009-02-14 16:23:53+01
4  | U2   | 2009-02-15 16:01:08+01
5  | U2   | 2009-04-25 15:41:08+02
6  | U2   | 2009-07-19 14:34:49+02
7  | U2   | 2010-08-30 14:15:40+02

我想查找首次联系到最后一次联系的时间少于一个月的用户。 所以我需要射击 为每个用户提供最早和最新的时间并加以区分。

1 个答案:

答案 0 :(得分:1)

您可以在用户列上使用GROUP BY对每个组的行进行存储。将其与移至HAVING子句的MIN / MAX结合使用,以便在执行分组后对其进行计算:

SELECT User FROM table 
GROUP BY User 
HAVING (MAX(contct_time) - MIN(contct_time)) <= INTERVAL '1 month'