概要:このチュートリアルでは、SQLiteRANK()
関数を使用して、クエリの結果セットの行のランクを計算する方法を学びます。
SQLite Rank()関数の概要
RANK()
関数は、クエリの結果セットの各行にランクを割り当てるウィンドウ関数です。 行のランクは、その前に来るランクの数を加えたもので計算されます。,
以下は、RANK()
関数の構文を示しています。
この構文では、
- まず、
PARTITION BY
句は、結果セットの行をパーティションに分割します。 - 次に、
ORDER BY
句は、各パーティション内の行の順序を指定します。 - 第三に、
RANK()
関数は、各パーティション内の各行に適用され、パーティション境界を越えるときに再初期化されます。
同じ列の値は同じランクを受け取ります。, 複数の行が同じランクを持つ場合、次の行のランクは連続していません。 これは、二人の選手が金メダルを共有している場合、銀メダルはありませんオリンピックのメダルのようなものです。,913ee4e2a9″>
第三に、RankDemo
テーブルからのクエリデータ:
第四に、使用RANK()
結果セットの行にランクを割り当てる関数RankDemo
テーブル:
出力は次のとおりです。
出力からはっきりとわかるように、第三行と第四行は同じ値を持つため同じランクを受け取ります。, 第五の行は、ランク5を取得しますRANK()
関数はランク4をスキップするためです。
SQLite RANK()関数の例
RANK()
関数を示すために、サンプルデータベースのtracks
テーブルを使用します。,
SQLite RANK()関数を使用してORDER BY句の例
次のステートメントは、RANK()
関数を使用して、トラックを長さでランク付けします。
この例では、PARTITION BY
句をスキップしたため、RANK()
関数は結果セット全体を単一のパーティションとして扱います。
まず、ORDER BY
句は、トラックをその長さ(Milliseconds
列)でソートします。,
次に、RANK()
関数が、トラックの長さによる順序を考慮して、結果セットの各行に適用されます。,
SQLite RANK()関数をパーティション別に使用
次のステートメントは、RANK()
関数を使用して、各アルバムの各トラックにランクを割り当てます。
次の図は、部分的な出力を示しています。
この例では、
- まず、
PARTITION BY
句は、トラックをアルバムに分割します。 - 次に、
ORDER BY
句は、トラックをその長さでソートします。, - 最後に、
RANK()
関数は、各アルバムの各トラックにランクを割り当てます。 アルバムが変更された場合、RANK()
関数はランク値を再初期化します。
次のサブクエリを使用して、各アルバムで二番目に長いトラックを見つけることができます。
出力は次のとおりです。
このチュートリアルでは、sqliteのRANK()
関数を使用して、結果セットの各行にランクを割り当てる方法を学習しました。,p>
- このチュートリアルは役に立ちましたか?
- イェスノ