Podsumowanie: w tym poradniku poznasz funkcję MySQL DENSE_RANK()
oraz dowiesz się, jak ją zastosować, aby znaleźć rangę wiersza w partycji lub zbiorze wyników.
Wprowadzenie do funkcji MySQL DENSE_RANK
Funkcja DENSE_RANK()
jest funkcją okna, która przypisuje rangę każdemu wierszowi w partycji lub zbiorze wyników bez przerw w wartościach rangi.
Ranga wiersza jest zwiększana o jeden z liczby odrębnych wartości rangi, które występują przed tym wierszem.
Składnia funkcji DENSE_RANK()
jest następująca:
Code language: SQL (Structured Query Language) (sql)
W tej składni:
- Najpierw klauzula
PARTITION BY
dzieli zbiory wyników utworzone przez klauzulęFROM
na partycje. FunkcjaDENSE_RANK()
jest stosowana do każdej partycji. - Po drugie, klauzula
ORDER BY
określa kolejność wierszy w każdej partycji, na których działa funkcjaDENSE_RANK()
.
Jeśli partycja ma dwa lub więcej wierszy o tej samej wartości rangi, każdemu z tych wierszy zostanie przypisana ta sama ranga.
W przeciwieństwie do funkcji RANK()
funkcja DENSE_RANK()
zawsze zwraca kolejne wartości rangi.
Załóżmy, że mamy tabelę t
z kilkoma przykładowymi danymi w następujący sposób:
Code language: SQL (Structured Query Language) (sql)
Następujące wyrażenie wykorzystuje funkcję DENSE_RANK()
do przypisania rangi każdemu wierszowi:
Code language: SQL (Structured Query Language) (sql)
Oto dane wyjściowe:
Przykład funkcji MySQL DENSE_RANK()
Do demonstracji wykorzystamy tabelę sales
utworzoną w samouczku funkcji okna.
Poniższe wyrażenie wykorzystuje funkcję DENSE_RANK()
do uszeregowania pracowników działu sprzedaży według kwoty sprzedaży.
Code language: SQL (Structured Query Language) (sql)
Wynik jest następujący:
W tym przykładzie:
- Po pierwsze, klauzula
PARTITION BY
podzieliła zbiory wyników na partycje przy użyciu roku podatkowego. - Po drugie, klauzula
ORDER BY
określiła kolejność pracowników sprzedaży według sprzedaży w porządku malejącym. - Po trzecie, funkcja
DENSE_RANK()
została zastosowana do każdej partycji z kolejnością wierszy określoną przez klauzulęORDER BY
.
W tym poradniku dowiedziałeś się, jak używać funkcji MySQL DENSE_RANK()
do szeregowania wierszy w każdej partycji zbioru wyników.
- Czy ten poradnik był pomocny?
- TakNie
.