[SQL Excavator] - ウィンドウ関数 - row_number

導入:

row_number() は、結果セット内の各行に一意の番号を割り当てる、一般的に使用されるウィンドウ関数です。この番号は、指定された並べ替え順序に基づいて割り当てられ、同じランクはスキップされません。

使用法:

row_number() 関数の構文は次のとおりです。

row_number() over ([partition by 列名1, 列名2, ... order by 列名 [asc|desc], ...])

この構文では、partition by はオプションです。これは、指定された列または式に従って結果セットを分割することを意味します。各パーティションは行番号の独立したシーケンスを生成し、各パーティション内で行番号を一意にします。

order by は並べ替え順序を指定するために使用され、1 つ以上の列に従って並べ替えることができます。並べ替え方法は、asc (昇順、デフォルト) または desc (降順) を使用して指定できます。

例:

ここでは、row_number() 関数の使用方法を示す例を示します。
従業員 ID (employeeid)、従業員名 (employeename)、雇用日 (hiredate) などの従業員情報を含むemployees という名前のテーブルがあるとします。各従業員に対して、入社日の昇順で並べ替えられた一意の行番号を生成したいと考えています。

select 
employeeid, employeename, hiredate,
row_number() over (order by hiredate) as rownumber
from employees;

この例では、 row_number() 関数を使用して、hiredate でソートされた行番号を含む rownumber という名前の列を作成します。結果セット内の各行には、hiredate の昇順に基づいて一意の行番号が割り当てられます。

row_number() 関数は、結果セット内の行の並べ替えやフィルター処理を変更しないことに注意することが重要です。これは、結果セット内の各行に行番号を割り当てるだけで、行レベルの番号付け操作を実行する便利な方法を提供します。

おすすめ

転載: blog.csdn.net/qq_40249337/article/details/132017622