I would like to get the interval between the rows in my table.
When I use this query I get seconds from previous timestamp. But the result is only right when two timestamps is in the same minute.
x
SELECT
Time_Stamp,
State,
Time_Stamp - LAG(Time_Stamp) OVER(ORDER BY Time_Stamp)
AS Seconds_In_State
FROM State_Table
ORDER BY Time_Stamp;
How do I get the result in intervals?
Advertisement
Answer
you can use timestampdiff()
function. I have used minute as unit here.
The unit should be one of the following : FRAC_SECOND (microseconds), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, or YEAR. Unit is the measurement unit here in which you want to count the difference.
SELECT
Time_Stamp,
State,
TIMESTAMPDIFF(minute, LAG(Time_Stamp) OVER(ORDER BY Time_Stamp),Time_Stamp)
AS Minute_In_State
FROM State_Table
ORDER BY Time_Stamp;