我想问你如何返回当前行的值和下一行的值之差。 我知道我可以使用Lead,但是我想尝试使用lag函数来做到这一点。
我原以为是lag(value) over (partition by id order by time desc)
,但我不确定这是否可行。
有什么建议吗?
答案 0 :(得分:1)
您的查询应与desc
一起使用。
您应该了解SQL表表示无序集。除非有列指定顺序,否则没有顺序。对于列lead()
和lag()
执行相同的操作-只是排序的顺序不同。一个行的上一行是另一行的下一行。
有一些小警告。 NULL
值可能会有所不同。并且相同的值会导致顺序不稳定,因此可能会返回任何匹配的值。
通常,lag()
和lead()
是在没有desc
的情况下使用的,但这只是在两个函数之间进行选择的约定。