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

Sql 如何使用lag返回当前行的值与下一行的值之间的差值?,sql,Sql,我想问您如何返回当前行的值与下一行的值之间的差值。 我知道我可以使用lead,但我想尝试使用lag函数来做同样的事情 我认为是滞后(值)超过(按id顺序按时间描述划分),但我不完全确定这是否有效 有什么建议吗?您的查询应该与排序上的desc一起使用 您应该理解SQL表表示无序集。没有排序,除非列指定了排序。对于列lead()和lag()执行相同的操作,只是排序顺序不同。其中一行的上一行是什么,另一行的下一行是什么 这里有一些小的警告空值值可能会得到不同的处理。相同的值会导致排序不稳定,因此可能会

我想问您如何返回当前行的值与下一行的值之间的差值。 我知道我可以使用lead,但我想尝试使用lag函数来做同样的事情

我认为是滞后(值)超过(按id顺序按时间描述划分),但我不完全确定这是否有效


有什么建议吗?

您的查询应该与排序上的
desc
一起使用

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

这里有一些小的警告<代码>空值值可能会得到不同的处理。相同的值会导致排序不稳定,因此可能会返回任何匹配的值

一般来说,
lag()
lead()
在没有
desc
的情况下使用,但这只是在这两个函数之间进行选择的惯例