トップ / ウィンドウ関数

dense_rank

パーティション内で順位をつけます。同じ値には同じ順位がつきますが、次の順位は飛ばしません。

SNOWPARK 静的検証のみ

dense_rank().over(window_spec)

POLARS 実行確認済み

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)