如何转化时间戳列到的间隔启动和停止
问题描述:
我有如下表如何转化时间戳列到的间隔启动和停止
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纪元)
如何能不能做到?
答
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
正是我在找什么。非常感谢! – 2010-12-22 15:55:54