W sumie istnieją trzy rodzaje funkcji rankingowych, jak następuje:
MySQL Rank ():
Jest to metoda, która daje rangę w partycji lub tablicy wyników z luki na rząd. Chronologicznie ranking rzędów nie jest przez cały czas nieorządkowany (ja.mi., Zwiększony o jeden z poprzedniego rzędu). Nawet gdy masz powiązanie między kilkoma wartościami, w tym momencie narzędzie rank () stosuje ten sam ranking. Ponadto jego wcześniejsza ranga plus liczba powtarzanych liczb może być kolejnym numerem rang.
Aby zrozumieć ranking, otwórz powłokę klienta wiersza poleceń i wpisz swoje hasło MySQL, aby zacząć go używać.
Załóżmy, że mamy poniższą tabelę o nazwie „Same” w bazie danych „Dane”, z niektórymi rekordami.
>> Wybierz * z danych.To samo;Przykład 01: prosta ranga ()
Poniżej używamy funkcji rang w ramach polecenia Select. To zapytanie wybiera kolumnę „id” z tabeli „same”, jednocześnie ranking według kolumny „id”. Jak widać, podaliśmy kolumnę rankingową nazwę, która jest „my_rank”. Ranking będzie teraz przechowywany w tej kolumnie, jak pokazano poniżej.
>> Wybierz id, rank () ponad (zamówienie według id) my_rank z fata.To samo;Przykład 02: rank () za pomocą partycji
Załóżmy inną tabelę „pracownik” w bazie danych „Dane” z następującymi rekordami. Miejmy kolejną instancję, która dzieli wynik ustawiony na segmenty.
>> Wybierz * z danych.pracownik;Aby pochłonąć metodę rank (), kolejne instrukcje przypisuje rangę do każdego wiersza i dzieli wyniki ustawione na partycje wykorzystujące „wiek” i sortowanie ich w zależności od „wynagrodzenia”. To zapytanie przynosi wszystkie rekordy, ranking w kolumnie „New_Rank”. Poniżej możesz zobaczyć wyjście tego zapytania. Zastosował tabelę zgodnie z „wynagrodzeniem” i podzielił ją według „wieku”.
>> Wybierz *, rank () ponad (partycja według kolejności wiekowej według pensji) new_rank z danych.pracownik;Mysql gense_rank ():
To jest funkcja, w której, bez dziur, określa ranga na każdy rząd w zestawie dywizji lub wyników. Ranking wierszy jest najczęściej przydzielany w kolejności sekwencyjnej. Czasami masz powiązanie między wartościami, a zatem jest przypisany do dokładnej rangi według gęstej rangi, a jego kolejna ranga jest kolejną kolejną liczbą.
Przykład 01: prosty gense_rank ()
Załóżmy, że mamy tabelę „Pracownik” i musisz uszeregować kolumny tabeli, „Nazwa” i „Wynagrodzenie” zgodnie z kolumną „Nazwa”. Stworzyliśmy nową kolumnę „dens_rank” do przechowywania w nim oceny rekordów. Po wykonaniu poniższego zapytania mamy następujące wyniki z różnym rankingiem do wszystkich wartości.
>> Wybierz nazwę, wynagrodzenie, Gense_Rank () Over (zamówienie według nazwy) dens_rank z danych.pracownik;Przykład 02: Gens_Rank () za pomocą partycji
Zobaczmy inny przypadek, który dzieli wynik ustawiony na segmenty. Zgodnie z poniższą składnią, wynikowy zestaw partycjonowany przez partycję przez frazę jest zwracany przez instrukcję z from, a metoda gense_rank () jest następnie rozmazana do każdej sekcji za pomocą kolumny „nazwa”. Następnie dla każdego segmentu kolejność wyrażenia rozmazuje się, aby określić imperatyw rzędów za pomocą kolumny „wiek”.
>> Wybierz nazwę, wiek, wynagrodzenie, gense_rank () Over (partycja według nazwy według wieku) new_rank z danych.pracownik;Po wykonaniu powyższego zapytania widać, że mamy bardzo wyraźny wynik w porównaniu z metodą pojedynczej gęstej_rank () w powyższym przykładzie. Mamy tę samą powtarzaną wartość dla każdej wartości wiersza, jak widać poniżej. To remis wartości rang.
Mysql Procent_Rank ():
Jest to rzeczywiście metoda rankingu procentowego (porównawcza ranga), która oblicza rzędy wewnątrz partycji lub kolekcji wyników. Ta metoda zwraca listę ze skali wartości zero do 1.
Przykład 01: prosty procent_rank ()
Korzystając z tabeli „pracownik”, patrzyliśmy na przykład metody prostej Procent_Rank (). Mamy do tego podane poniżej zapytanie. Kolumna Per_Rank została wygenerowana metodą Procent_Rank () w celu uzyskania zestawu wyników w formie procentowej. Prowadziliśmy dane zgodnie z kolejnością sortowania kolumny „wiek”, a następnie uszeregowaliśmy wartości z tej tabeli. Wynik zapytania dla tego przykładu podał nam procentowy ranking dla wartości przedstawionych na poniższym obrazku.
>> Wybierz *, procent_rank () ponad (zamówienie według wieku) per_rank z danych.pracownik;Przykład 02: procent_rank () za pomocą partycji
Po wykonaniu prostego przykładu Procent_Rank (), teraz jest to kolej dla klauzuli „partycja przez”. Używamy tej samej tabeli „pracownik”. Rzućmy kolejne spojrzenie na inny przypadek, który dzieli wynik ustawiony na sekcje. Podane z poniższej składni, wynikowa ściana ustawiona przez partycję według wyrażenia jest zwracana przez Deklaracja, a także metoda Procent_Rank () jest następnie wykorzystywana do rankingu każdego rzędu wiersza według kolumny „Nazwa”. Na obrazie wyświetlonym poniżej możesz zobaczyć zestaw wyników zawiera tylko wartości 0 i 1.
>> Wybierz *, Procent_Rank () Over (partycja według zamówienia wynagrodzenia według nazwy) per_rank z danych.pracownik;Wniosek:
Na koniec wykonaliśmy wszystkie trzy funkcje rankingowe dla rzędów używanych w MySQL, za pośrednictwem powłoki klienta linii poleceń MySQL. W naszym badaniu wzięliśmy pod uwagę zarówno prostą, jak i partycję według klauzuli.