Я использую postgres (postgis) и хочу выполнить запрос, который возвращает все строки, имеющие временную метку, в течение часа друг от друга.
Как будет выглядеть инструкция SQL?
Таблица выглядит следующим образом:
- id {целое число *
- имя {изменяющийся символ}
отметка времени {отметка времени с часовым поясом}
id name timestamp
---+----------+--------------------------------
1 one "2010-09-24 21:10:39.515+00"
2 two "2010-09-16 09:21:09.362+00"
3 three "2010-07-08 00:00:46.549+00"
РЕДАКТИРОВАТЬ # 1
Вот лучший пример.(с помощью Tometzky) Все результаты в течение 1 часа друг от друга.То есть для каждой строки укажите любые другие строки, которые находятся в пределах 1 часа:
select * from myTable order by t
id | t
----+-------------------------------
9 | 2011-07-15 18:20:20.05+02
10 | 2011-07-15 19:05:00.05+02
11 | 2011-07-15 19:40:20.05+02
13 | 2011-07-15 20:31:01.05+02
14 | 2011-07-15 20:35:11.05+02
(5 rows)
result of needed query:
id | matchid | origTime | matchTime
----+----------+----------------------------+------------------------------
9 | 10 | 2011-07-15 18:20:20.05+02 | 2011-07-15 19:05:00.05+02
10 | 9 | 2011-07-15 19:05:00.05+02 | 2011-07-15 18:20:20.05+02
10 | 11 | 2011-07-15 19:05:00.05+02 | 2011-07-15 19:40:20.05+02
11 | 10 | 2011-07-15 19:40:20.05+02 | 2011-07-15 19:05:00.05+02
11 | 13 | 2011-07-15 19:40:20.05+02 | 2011-07-15 20:31:01.05+02
11 | 14 | 2011-07-15 19:40:20.05+02 | 2011-07-15 20:35:11.05+02
13 | 11 | 2011-07-15 20:31:01.05+02 | 2011-07-15 19:40:20.05+02
13 | 14 | 2011-07-15 20:31:01.05+02 | 2011-07-15 20:35:11.05+02
14 | 11 | 2011-07-15 20:35:11.05+02 | 2011-07-15 19:40:20.05+02
14 | 13 | 2011-07-15 20:35:11.05+02 | 2011-07-15 20:31:01.05+02
(10 rows)