[英]difference between timestamps in two consecutive rows in single table
我希望使用單個查詢從波紋管表的兩個連續行中的時間戳之間的時差:
我嘗試了此查詢,但效率非常低,並且服務器超時。
SELECT t1.t_id AS id1,
t2.t_id AS id2,
t1.timestamp AS timestamp1,
t2.timestamp AS timestamp2,
Timestampdiff(second, t1.timestamp, t2.timestamp) AS diff
FROM (SELECT *
FROM `track`) AS t1,
(SELECT *
FROM `track`
WHERE `t_id` != (SELECT `t_id`
FROM `track`
LIMIT 1)) AS t2
WHERE ( t1.t_id - 1 ) = t2.t_id
像這樣將表自身連接起來(還沒有嘗試過,但是您知道了)
SELECT t1.t_id AS id1,
t2.t_id AS id2,
t1.timestamp AS timestamp1,
t2.timestamp AS timestamp2,
Timestampdiff(second, t1.timestamp, t2.timestamp) AS diff
FROM track AS t1
JOIN track AS t2 ON (t2.t_id = t1.t_id - 1)
SELECT t1.t_id AS id1,
t2.t_id AS id2,
t1.timestamp AS timestamp1,
t2.timestamp AS timestamp2,
Timestampdiff(second, t1.timestamp, t2.timestamp) AS diff
FROM (SELECT *
FROM `track`) AS t1 Join
(SELECT *
FROM `track`) AS t2 on ( t1.t_id - 1 ) = t2.t_id
WHERE ( t1.t_id - 1 ) = t2.t_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.