Korzystanie z funkcji mysql gense_rank

Korzystanie z funkcji mysql gense_rank
Funkcja mysql gense_rank () jest funkcją, która wyświetla ranga rzędu w partycji bez luk w wartościach rankingowych. Ta funkcja jest funkcją okna, co oznacza, że ​​ma podobieństwa do funkcji takich jak funkcje Row_number () i rank ().

Ten samouczek zagłębi się w sposób działania gęstej funkcji MySQL i jak możemy ją używać w różnych operacjach bazy danych. Jeśli chcesz śledzić ten samouczek, rozważ pobranie przykładowej bazy danych Sakila z zasobu podanego poniżej:

https: // dev.Mysql.com/doc/index-inni.html

Podstawowe użycie

Funkcja mysql gense_rank () wyświetla szeregi wiersza w partycji bez luk. Rangi wierszy rosną o wartość 1 z unikalnej wartości rankingu poprzedniego rzędu.

Ogólna składnia funkcji gense_rank () jest jako:

Wybierz col1 gense_rank () over (partycja przez expr kolejność według expr [ASC | desc]) rank_col_name z nazwy tb_name

Dokładajmy dokładniej zbadaj powyższą składnię zapytania.

Funkcja gense_rank () łączy się z klauzulą ​​selekcji, która wyświetli szeregi wierszy z określonej tabeli.

Gens_Rank () w sekcjach zwraca wynik funkcji gense_rank () i wyjścia przechowywane w określonej nazwie kolumny.

Partycja według klauzuli dzieli wyniki zwrócone przez klauzulę z partycji. Funkcja Gense_Rank () jest stosowana do każdej partycji.

Wreszcie, sekcja według sekcji określa kolejność ustawionych wierszy w każdej partycji.

Przykładowy przypadek użycia

Użyjmy przykładowej bazy danych, aby zilustrować, w jaki sposób możemy użyć funkcji Gense_Rank (). W tym przykładzie użyjemy bazy danych Sakila, a dokładniej tabeli filmów w bazie danych Sakila.

Korzystając z funkcji Gense_Rank (), możemy uszeregować filmy według ich wskaźnika wynajmu, jak pokazano w pytaniu poniżej:

Użyj Sakila;
Wybierz tytuł, wydanie_year, ocena, długość, gense_rank () over (partycja według zamówienia release_year przez Rental_Rate ASC) Rank_value from Film;

Ze względu na ogromną ilość danych w bazie danych Sakila, zreorganizuję dane wyjściowe w celu łatwiejszego odczytu i ilustracji.

Wyjście jest poniżej:



Jeśli spojrzysz uważnie na powyższe dane wyjściowe, zauważysz, że wynikowe wyjście waha się od rangi od 1 do 3, co odpowiada wartościom czynszu w tabeli folii. Wartości Rental_Rate to:

  1. 0.99 - Ranga 1
  2. 2.99 - Ranga 2
  3. 4.99 - Ranga 3

W powyższym przykładzie wykorzystaliśmy partycję według klauzuli, aby podzielić powstałe zestawy na różne partycje, w tym przypadku, wydanie_year.

Następnie wykorzystaliśmy zamówienie MySQL według oświadczenia, aby zamówić filmy według stawki wynajmu w kolejności rosnącej. Na koniec zastosowaliśmy funkcję gense_rank () na każdej partycji określonej w kolejności według instrukcji.

Wniosek

W tym samouczku wyjaśniliśmy, jak funkcja Gense_Rank () działa w bazie danych i użyliśmy przykładu w świecie rzeczywistym, aby zilustrować, jak z niej korzystać.

Możesz dowiedzieć się więcej o Gense_Rank () Inne funkcje okien z zasobu podanego poniżej:

https: // dev.Mysql.com/doc/refman/8.0/EN/Window-Funkcje.html