次のようなデータがあります。
t starttime endtime
1 2012-11-13 07:00:00.000 2012-11-13 09:00:00.000
1 2012-11-13 09:00:00.000 2012-11-13 09:15:00.000
2 2012-11-13 09:00:00.000 2012-11-13 16:00:00.000
1 2012-11-13 09:15:00.000 2012-11-13 12:00:00.000
1 2012-11-13 12:30:00.000 2012-11-13 15:00:00.000
1 2012-11-14 07:00:00.000 2012-11-14 09:00:00.000
1 2012-11-14 09:00:00.000 2012-11-14 09:15:00.000
1 2012-11-14 09:15:00.000 2012-11-14 12:00:00.000
1 2012-11-14 12:30:00.000 2012-11-14 15:00:00.000
1 2012-11-15 07:00:00.000 2012-11-15 09:00:00.000
1 2012-11-15 09:00:00.000 2012-11-15 09:15:00.000
1 2012-11-15 09:15:00.000 2012-11-15 12:00:00.000
1 2012-11-15 12:30:00.000 2012-11-15 15:00:00.000
次のように前処理したい:
timestamp t x
2012-11-13 07:00:00.000 1 1
2012-11-13 09:00:00.000 1 0
2012-11-13 09:00:00.000 1 1
2012-11-13 09:00:00.000 2 1
2012-11-13 09:15:00.000 1 0
2012-11-13 09:15:00.000 1 1
2012-11-13 12:00:00.000 1 0
2012-11-13 12:30:00.000 1 1
2012-11-13 15:00:00.000 1 0
2012-11-13 16:00:00.000 2 0
2012-11-14 07:00:00.000 1 1
2012-11-14 09:00:00.000 1 0
2012-11-14 09:00:00.000 1 1
2012-11-14 09:15:00.000 1 0
2012-11-14 09:15:00.000 1 1
2012-11-14 12:00:00.000 1 0
2012-11-14 12:30:00.000 1 1
2012-11-14 15:00:00.000 1 0
2012-11-15 07:00:00.000 1 1
2012-11-15 09:00:00.000 1 0
2012-11-15 09:00:00.000 1 1
2012-11-15 09:15:00.000 1 0
2012-11-15 09:15:00.000 1 1
2012-11-15 12:00:00.000 1 0
2012-11-15 12:30:00.000 1 1
2012-11-15 15:00:00.000 1 0
x
の値timestamp
が from starttime
( x = 1 ) または from endtime
( x = 0 ) であるかどうかを定義する必要があります。私は知っています、それはケーキselects
ですunion all
。
しかし、いくつかの拡張機能で使用できるunpivot()
かどうか疑問に思っていますか? 次のように始まりました:
SELECT
, UD."timeStamp"
, UD."t"
, "isStart"
FROM
(
SELECT
"StartTime"
, "EndTime"
, "t"
, < REFERENCE TO STARTTIME OR ENDTIME ? >
FROM
Data
) AS BC
UNPIVOT ( "timeStamp" FOR dummy IN ( "StartTime", "EndTime" )) AS UD
< REFERENCE TO STARTTIME OR ENDTIME ? >
timeStamp がどの列から来ているかの情報を提供する必要があります...