Shrnutí: v tomto kurzu se seznámíte s funkcí MySQL DENSE_RANK()
a jejím použitím pro zjištění pořadí řádku v oddílu nebo souboru výsledků.
Úvod do funkce MySQL DENSE_RANK
Funkce DENSE_RANK()
je okenní funkce, která každému řádku v oddílu nebo souboru výsledků přiřadí pořadí bez mezer v hodnotách pořadí.
Rang řádku se zvýší o jedničku z počtu odlišných hodnot ranků, které jsou před řádkem.
Syntaxe funkce DENSE_RANK()
je následující:
Code language: SQL (Structured Query Language) (sql)
V této syntaxi:
- Nejprve klauzule
PARTITION BY
rozdělí množiny výsledků vytvořené klauzulíFROM
na oddíly. Na každý oddíl se aplikuje funkceDENSE_RANK()
. - Druhé, klauzule
ORDER BY
určuje pořadí řádků v každém oddílu, na kterém pracuje funkceDENSE_RANK()
.
Pokud má oddíl dva nebo více řádků se stejnou hodnotou hodnosti, bude každému z těchto řádků přiřazena stejná hodnost.
Na rozdíl od funkce RANK()
vrací funkce DENSE_RANK()
vždy po sobě jdoucí hodnoty hodnosti.
Předpokládejme, že máme tabulku t
s několika vzorky dat takto:
Code language: SQL (Structured Query Language) (sql)
Následující příkaz použije funkci DENSE_RANK()
k přiřazení hodnosti každému řádku:
Code language: SQL (Structured Query Language) (sql)
Tady je výstup:
Příklad funkce MySQL DENSE_RANK()
Pro ukázku použijeme tabulku sales
vytvořenou v návodu na funkci okna.
Následující příkaz využívá funkci DENSE_RANK()
k seřazení zaměstnanců prodeje podle výše prodeje.
Code language: SQL (Structured Query Language) (sql)
Výstup je následující:
V tomto příkladu:
- Nejprve klauzule
PARTITION BY
rozdělila soubory výsledků na oddíly pomocí fiskálního roku. - Druhé, klauzule
ORDER BY
určila pořadí zaměstnanců podle tržeb v sestupném pořadí. - Zatřetí, funkce
DENSE_RANK()
je aplikována na každý oddíl s pořadím řádků určeným klauzulíORDER BY
.
V tomto návodu jste se naučili používat funkci DENSE_RANK()
MySQL k řazení řádků v každém oddílu výsledkové množiny.
- Pomohl vám tento návod?
- AnoNe
.