使用窗口函数比较 PostgreSQL 中的行
从数据库中检索数据,同时比较当前行与其相邻行可能是一个有价值的用途案件。在 PostgreSQL 中,窗口函数为此任务提供了强大的解决方案。
其中一项技术涉及使用滞后函数和超前函数。 lag 根据指定的偏移量从前一行检索值,而 Lead 从后一行检索值。
示例:
假设您有一个表有两列:位置和数字。您想要选择偶数之间的奇数。使用窗口函数,您可以通过以下查询来实现此目的:
SELECT numbers FROM ( SELECT numbers, lag(numbers,1) OVER w AS previous_number, lead(numbers,1) OVER w AS next_number FROM table WINDOW w AS (PARTITION BY position ORDER BY position) ) subquery WHERE previous_number % 2 = 0 AND next_number % 2 = 0 AND numbers % 2 = 1;
窗口函数提供了多个好处:
其他注意事项:
以上是PostgreSQL 窗口函数如何将一行与其相邻行进行比较?的详细内容。更多信息请关注PHP中文网其他相关文章!