Самое старое и раннее время в PostgreSQL - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть таблица с информацией о пользователях и их контактах с нами.например

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 голосов
/ 11 декабря 2018

Вы можете использовать GROUP BY в пользовательском столбце для объединения строк в группу.Объедините его с MIN / MAX, перемещенным в предложение HAVING, чтобы они вычислялись после выполнения группировки:

SELECT User FROM table 
GROUP BY User 
HAVING (MAX(contct_time) - MIN(contct_time)) <= INTERVAL '1 month'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...