トップ / ウィンドウ関数

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)