gpt4 book ai didi

mysql - 如何找到不同行单元格之间的最大差异

转载 作者:行者123 更新时间:2023-11-29 14:26:13 24 4
gpt4 key购买 nike

我有一个 mysql 表 A,它存储一系列数字和时间戳

value    timestamp
12087 2012-01-01 00:00:00
12110 2012-01-02 02:00:00
12223 2012-01-04 03:00:00
12312 2012-01-04 05:00:00
12387 2012-01-04 06:00:00
12388 2012-01-05 01:11:23
...

值和时间戳都是有序的:时间戳越大,值越大,但它们之间没有其他依赖关系。

我需要找到一段时间内排序序列中值之间的最大差异。在示例中,差异是:

12110-12087=23
12223-12100=13
12312-12223=89
12387-12312=75
12388-12387=1

所以我们最大的差异是89。

问题是:如何为此编写 SQL 查询代码?要知道,我不想使用完整的产品和/或相关查询,因为表很大。

最佳答案

select 
(case when (@prev is null) then 0
else abs(value - @prev) end) as diff
, concat(value, '-', @prev)
, @prev := value

from (select value, dt from table1 order by dt) ordered
order by diff limit 1

将句点限制器添加到 from 子查询中

编辑,新信息告诉我这是一个不可靠的方法 http://dev.mysql.com/doc/refman/5.0/en/user-variables.html (ctrl + f 表示 SELECT @a, @a:=@a+1)

关于mysql - 如何找到不同行单元格之间的最大差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10916123/

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