如何使用lag返回当前行的值与下一行的值之差?

时间:2019-11-04 23:53:13

标签: sql

我想问你如何返回当前行的值和下一行的值之差。 我知道我可以使用Lead,但是我想尝试使用lag函数来做到这一点。

我原以为是lag(value) over (partition by id order by time desc),但我不确定这是否可行。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您的查询应与desc一起使用。

您应该了解SQL表表示无序集。除非有列指定顺序,否则没有顺序。对于列lead()lag()执行相同的操作-只是排序的顺序不同。一个行的上一行是另一行的下一行。

有一些小警告。 NULL值可能会有所不同。并且相同的值会导致顺序不稳定,因此可能会返回任何匹配的值。

通常,lag()lead()是在没有desc的情况下使用的,但这只是在两个函数之间进行选择的约定。