導入:
lead() は一般的に使用されるウィンドウ関数であり、特定の行の後の行の値を取得するために使用されます。これを使用して、結果セット内の現在の行の後の指定された列の値にアクセスできます。
使用法:
lead() 関数の構文は次のとおりです。
lead(列名, 偏移量, 默认值) over (partition by 列名1, 列名2, ... order by 列名 [asc|desc], ...)
この構文では、列名は後続の値を取得する必要がある列で、オフセットは取得する現在の行の後の行の値を示す整数で、デフォルトは 1 です。デフォルト値はオプションであり、結果セットの境界に達した場合は代替値を指定できます。
これは、指定された列または式に従って結果セットを分割することを意味します。各パーティションには独自の lead() シーケンスがあります。
order by は並べ替え順序を指定するために使用され、1 つ以上の列に従って並べ替えることができます。並べ替え方法は、asc (昇順、デフォルト) または desc (降順) を使用して指定できます。
例:
ここでは、lead() 関数の使用方法を示す例を示します。
注文番号 (orderid)、注文日 (orderdate)、注文金額 (mount) などの注文情報を含む、orders というテーブルがあるとします。注文ごとに次の注文日を取得したいと考えています。
select
orderid, orderdate,
lead(orderdate, 1) over (order by orderdate) as nextorderdate
from orders;
この例では、 lead() 関数を使用して、注文日順に並べ替えられた次の注文日を格納する nextorderdate という名前の列を作成します。結果セットの各行には、現在の注文の次の注文日が示されます。
lead() 関数は、後続の行がない (結果セットの境界に達している) 場合はデフォルト値または null を返すことに注意してください。