ホームページ >データベース >mysql チュートリアル >PostgreSQL ウィンドウ関数はどのようにして行を隣接する行と比較できるのでしょうか?
ウィンドウ関数を使用した PostgreSQL の行の比較
現在の行と隣接する行を比較しながらデータベースからデータを取得することは、有益な用途となる可能性があります場合。 PostgreSQL では、ウィンドウ関数がこのタスクに対する強力なソリューションを提供します。
そのような手法の 1 つには、ラグ関数とリード関数の使用が含まれます。 lag は前の行から値を取得し、lead は指定されたオフセットに基づいて後続の行から値を取得します。
例:
テーブルがあるとします。位置と数値の 2 つの列があります。偶数の間の奇数を選択したいとします。ウィンドウ関数を使用すると、次のクエリでこれを実現できます。
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 中国語 Web サイトの他の関連記事を参照してください。