トップ / ウィンドウ関数
パーティション内で順位をつけます。同じ値には同じ順位がつきますが、次の順位は飛ばしません。
dense_rank().over(window_spec)
pl.col("salary").rank(method="dense", descending=True).over("department")
SnowparkはSQLのDENSE_RANK()に変換されます。Polarsは.rank(method="dense")で対応します。実行して確認したところ、同率が2件あっても次の順位は2から始まります(rankのときの「3から始まる」との違いが確認できました)。
rankとの違いはmethod引数の値("min"か"dense"か)だけで、呼び出しの形はほぼ同じです。どちらを使うつもりだったか、書くときにmethodの値を見て確認する習慣をつけると取り違えを防げます。
Polars 1.43.2 で実行確認 / Snowpark Python SDK 1.54.0 で静的検証(2026-08-24)