トップ / ウィンドウ関数

rank

パーティション内で順位をつける。同じ値には同じ順位がつき、その分だけ次の順位を飛ばす。

SNOWPARK 静的検証のみ

rank().over(window_spec)

POLARS 実行確認済み

pl.col("salary").rank(method="min", descending=True).over("department")

挙動・設計の違い

SnowparkはSQLのRANK()関数に変換される。Polarsは.rank(method="min")で同じ挙動になる。実行して確認したところ、同率のときに順位が並び(1, 1)、その次は2でなく3から始まる点まで一致する。

移行時の落とし穴

Polarsの.rank()method引数を省略したり別の値("ordinal""dense"など)にすると挙動が変わる。SQLのRANK()と同じ「同率は同順位・次は飛ばす」という挙動にしたいときは、必ずmethod="min"を明示する(既定値のままでは意図と違う結果になる)。

ウィンドウ関数の他のメソッド

出典・検証情報

Polars 1.43.2 で実行確認 / Snowpark Python SDK 1.54.0 で静的検証(2026-08-24)