使用視窗函數比較 PostgreSQL 中的行
在 PostgreSQL 中,可以使用視窗函數來比較目前行與相鄰行。視窗函數可讓您在一系列行(包括前一行和後一行)上套用邏輯和計算。
比較偶數之間的奇數範例
檢索奇數在表中的偶數之間,可以使用以下查詢:
SELECT odd_num FROM ( SELECT num, LAG(num, 1) OVER (ORDER BY id) AS prev_num, LEAD(num, 1) OVER (ORDER BY id) AS next_num FROM table_name ) AS window WHERE (prev_num % 2 = 0) AND (next_num % 2 = 0) AND (num % 2 <> 0);
視窗函數優點
與執行多個查詢或使用遊標比較行相比,視窗函數具有多優點:
其他注意事項
使用視窗函數時,請考慮以下因素非常重要:
名稱檢測範例的簡化版本
將相同的原理應用於文字解析範例,可以使用以下簡化查詢:
SELECT text FROM ( SELECT text ,category ,LAG(category) OVER w AS previous_cat ,LEAD(category) OVER w AS next_cat FROM token t JOIN textBlockHasToken tb ON tb.tokenId = t.id WINDOW w AS (PARTITION BY textBlockId, sentence ORDER BY position) ) tokcat WHERE category <> 'NAME' AND previous_cat = 'NAME' AND next_cat = 'NAME';
以上是PostgreSQL 視窗函數如何比較行以進行高效的資料分析?的詳細內容。更多資訊請關注PHP中文網其他相關文章!