Rankingi RANK, DENSE_RANK, PARTITION

RANK() - Tworzy ranking niegęsty

select
kolumna1,
kolumna2,
kolumna3,
RANK() OVER (order by kolumna3 desc) ranking
from tabela1

DENSE_RANK() - Tworzy ranking gęsty

select
kolumna1,
kolumna2,
kolumna3,
DENSE_RANK() OVER (order by kolumna3 desc) ranking_gesty
from tabela1

PARTITION - Partycjonowania pozwala na budowanie osobnych rankingów dla danej wartości kolumny. Komendy tej mozna używać zawsze gdy mamy komendę OVER.

select
kolumna1,
kolumna2,
kolumna3,
kolumna4,
dense_rank() over (PARTITION by kolumna3 order by kolumna4 desc) ranking_gesty
from tabela1

RANK(aaa) - Badanie hipotetycznej pozycji wartości 'aaa' w rankingu.

select
rank(4000) within group (order by kol1 DESC) hip
from tab1

Tags: