使用視窗函數比較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中文網其他相關文章!