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 BYrozdělí množiny výsledků vytvořené klauzulíFROMna oddíly. Na každý oddíl se aplikuje funkceDENSE_RANK(). - Druhé, klauzule
ORDER BYurč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 BYrozdělila soubory výsledků na oddíly pomocí fiskálního roku. - Druhé, klauzule
ORDER BYurč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
.