我确实有一个表格,其中包含有关用户以及他们与我们联系的时间的信息。 例如
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
我想查找首次联系到最后一次联系的时间少于一个月的用户。 所以我需要射击 为每个用户提供最早和最新的时间并加以区分。
答案 0 :(得分:1)
您可以在用户列上使用GROUP BY
对每个组的行进行存储。将其与移至HAVING子句的MIN / MAX结合使用,以便在执行分组后对其进行计算:
SELECT User FROM table
GROUP BY User
HAVING (MAX(contct_time) - MIN(contct_time)) <= INTERVAL '1 month'