Я пытаюсь решить один запрос, который уже решен на SQL Сервере.
Напишите запрос SQL, чтобы найти непрерывные даты, по крайней мере, три раза.
SQLfiddle
Таблица: orders
*------------*
| mdate |
*------------*
|'2012-05-01'|
|'2012-05-02'|
|'2012-05-03'|
|'2012-05-06'|
|'2012-05-07'|
|'2012-05-10'|
|'2012-05-11'|
*------------*
SQL Сервер:
select
mdate
from
(
select
mdate,
count(gap) over (partition by gap) as total
from
(
select
mdate,
dateadd(day, - row_number() over (order by mdate), mdate) as gap
from orders
) t
) tt
where total >= 3
Результат:
*------------*
| mdate |
*------------*
|'2012-05-01'|
|'2012-05-02'|
|'2012-05-03'|
*------------*
Я не могу использовать функцию dateadd()
в PostgreSQL, так как Я добиваюсь того же результата в этом?