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 BYdzieli zbiory wyników utworzone przez klauzulęFROMna partycje. FunkcjaDENSE_RANK()jest stosowana do każdej partycji. - Po drugie, klauzula
ORDER BYokreś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 BYpodzieliła zbiory wyników na partycje przy użyciu roku podatkowego. - Po drugie, klauzula
ORDER BYokreś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
.