トップ / ウィンドウ関数
パーティション内で順位をつけます。同じ値には同じ順位がつき、その分だけ次の順位を飛ばします。
rank().over(window_spec)
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)