我有一个包含3列的表格,如TimeStamp,BidPrice& AskPrice。 我必须比较连续行的数据,比如第1行和第1行的比较。 2和下一行2& 3等等到表的末尾。如果行的BidPrice或AskPrice不匹配,我必须将其时间戳的差异转储到只有一列作为TimeStamp的不同表中。
+---------------+------------+-----------+
| ExchTimeStamp | BidPrice0 | AskPrice0 |
+===============+============+===========+
| 1127918883925 | 58765 | 59395 |
+---------------+------------+-----------+
| 1127918883926 | 58765 | 59395 |
+---------------+------------+-----------+
| 1127918883965 | 58765 | 59390 |
+---------------+------------+-----------+
| 1127918884043 | 58765 | 59320 |
+---------------+------------+-----------+
| 1127918884050 | 58765 | 59315 |
+---------------+------------+-----------+
上面显示的是示例数据,因为我必须比较第1行和第2行的买价,因为它们不同我必须找到这些相应行的TimeStamp的差异,并将该值插入新表中,如TimeStampData。
预期结果
+---------------+
| TimeStamp |
+===============+
| 0 |
+---------------+
| 39 |
+---------------+
| 78 |
+---------------+
| 7 |
+---------------+
我对MySQL非常陌生,因此需要一些帮助
答案 0 :(得分:-1)
你可以做这样的事情
; WITH CTE AS
(SELECT Column1,Timstampcolumn,LAG(Timstampcolumn,1) OVER
(PARTITION BY Column1 ORDER BY Column1) AS OLD_TIMESTAMP FROM Yourtable
WHERE 'youruserid'
)
SELECT *,DATEDIFF(DD,OLD_TIMESTAMP,Timstampcolumn)
FROM CTE WHERE OLD_TIMESTAMP IS NOT NULL
其中LAG 1表示您想比较下一行