引用窗口函数中的当前行

Gab*_*eim 5 postgresql window-functions

是否可以引用窗口分区中的当前行?我想做如下的事情:

SELECT min(ABS(variable - CURRENT.variable)) over (order by criterion RANGE UNBOUNDED PRECEDING)

也就是说,我想在给定的分区中找到最接近当前值的变量。可以做这样的事情吗?

举个例子,来自:

criterion | variable 1 2 2 4 3 2 4 7 5 6

我们将得到:

null 2 0 3 1

谢谢

Lau*_*lbe 1

据我所知,这不能用窗口函数来完成。

但这可以通过自连接来完成:

SELECT a.id,
       a.variable,
       min(abs(a.variable - b.variable))
FROM mydata a
   LEFT JOIN mydata b
      ON (b.criterion < a.criterion)
GROUP BY a.id, a.variable
ORDER BY a.id;
Run Code Online (Sandbox Code Playgroud)