gpt4 book ai didi

mysql - 比较MySQL中一个表中连续的两行数据

转载 作者:行者123 更新时间:2023-11-30 23:46:45 25 4
gpt4 key购买 nike

我有一个包含 3 列的表格,分别是 TimeStamp、BidPrice 和 AskPrice。我必须比较来自连续行的数据,比如第 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 行的出价,因为它们不同我必须找到这些各自行的时间戳差异并将该值插入到新表中,比如 TimeStampData。

预期结果

+---------------+
| TimeStamp |
+===============+
| 0 |
+---------------+
| 39 |
+---------------+
| 78 |
+---------------+
| 7 |
+---------------+

我是 MySQL 的新手,所以需要一些帮助

最佳答案

你可以这样做

        ; 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 表示您要比较下一行

关于mysql - 比较MySQL中一个表中连续的两行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33428995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com