Funkcja MySQL DENSE_RANK

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. Funkcja DENSE_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 funkcja DENSE_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

Przykład funkcji MySQL DENSE_RANK()

Do demonstracji wykorzystamy tabelę sales utworzoną w samouczku funkcji okna.

tabela sprzedawcy

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:

MySQL DENSE_RANK - Przypisanie rangi pracownikom sprzedaży

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

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.