概要:このチュートリアルでは、SQL ServerRANK()
関数を使用して、結果セットのパーティション内の各行のランクを計算す
SQL Serverの概要RANK()関数
RANK()
関数は、結果セットのパーティション内の各行にランクを割り当てるウィンドウ関数です。
同じ値を持つパーティション内の行は、同じランクを受け取ります。 パーティション内の最初の行のランクは一つです。, RANK()
関数は、次の行のランクを計算するためにタイランクにタイランクの数を追加するため、ランクは連続していない場合があります。
以下は、RANK()
関数の構文を示しています。
この構文では、
- まず、
PARTITION BY
句は、関数が適用される結果セットパーティションの行を分割します。 - 次に、
ORDER BY
句は、関数が適用される各パーティション内の行の論理的なソート順序を指定します。,
RANK()
関数は、top-Nおよびbottom-Nレポートに役立ちます。,”>
第二に、sales.rank_demo
テーブルにいくつかの行を挿入します:
Code language: SQL (Structured Query Language) (sql)
第三に、sales.rank_demo
テーブルからのクエリデータ:
Code language: SQL (Structured Query Language) (sql)
第四に、ROW_NUMBER()
結果セットの行にランクを割り当てるにはsales.rank_demo
テーブル:
Code language: SQL (Structured Query Language) (sql)
出力は次のとおりです。
彼らは同じ値bを持っているので、明らかに出力から、第二と第三の行は同じランクを受け取ります。, 第四行と第五行は、RANK()
関数はランク3をスキップし、それらの両方も同じ値を持つため、ランク4を取得します。,iv id=”6657ab2abb”>
関数:
結果セットでSQL Server RANK()関数を使用する例
次の例では、RANK()
関数を使用して結果セットは次のとおりです。
この例では、PARTITION BY
句をスキップしたため、RANK()
関数は、結果セット全体を単一のパーティションとして扱いました。,
RANK()
関数は、リスト価格でソートされた結果セット内の各行に高い順にランクを割り当てます。,
SQL Server RANK()関数をパーティションで使用する例
この例では、RANK()
関数を使用して、各ブランドの定価で各製品にランクを割り当て、ランクが三以下の製品を返します。
次の図は出力を示しています。
この例では、
- まず、
PARTITION BY
句は、ブランドidによって製品をパーティションに分割します。, - 次に、
ORDER BY
句は、各パーティションの製品を定価でソートします。 - 第三に、外側のクエリは、ランク値が三つ以下の製品を返します。
RANK()
関数は、各パーティションの各行に適用され、パーティションの境界を越えると再初期化されます。
このチュートリアルでは、SQL ServerRANK()
関数を使用して、結果セットのパーティション内の各行にランクを割り当てる方法を学習しました。