Как преобразовать столбец меток времени в интервалы с запуском и остановкой - PullRequest
1 голос
/ 22 декабря 2010

У меня есть следующая таблица

id          ts
----------- -----------
30          0
30          1205280000
30          2147483647
31          0
31          2147483647
...         ...

, и я пытаюсь преобразовать ее в медленно изменяющуюся таблицу измерений типа 2 для использования в приложении OLAP.

id          start       stop
----------- ----------- -----------
30          0           1205280000
30          1205280000  2147483647
31          0           2147483647
...         ...         ...

временные метки 0 и 2147483647 можно считать константами, поскольку они представляют начало и конец времени (в эпоху UNIX)

Как это можно сделать?

1 Ответ

1 голос
/ 22 декабря 2010
WITH    q AS
        (
        SELECT  id, ts, ROW_NUMBER() OVER (PARTITION BY id ORDER BY ts) AS rn
        FROM    mytable
        )
SELECT  q1.id, q1.ts AS start, q2.ts AS stop
FROM    q q1
JOIN    q q2
ON      q2.id = q1.id
        AND q2.rn = q1.rn + 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...