W tym poście napotkasz funkcję rank () w bazach danych Oracle, która umożliwia określenie rangi wiersza z danego zestawu wierszy.
Oracle Rank Funkcja
Funkcja rank () w Oracle pozwala nam przypisać rangę do każdego wiersza w zestawie wyników. Funkcja przypisuje tę samą rangę do wszystkich wierszy o podobnych wartościach i dodaje liczbę do następnego wiersza w randze.
Możemy wyrazić składnię dla funkcji, jak pokazano następująco:
Ranga () ponad (Funkcja obsługuje następujące parametry:
Przykłady funkcji Oracle Rank ()
Aby zilustrować, jak korzystać z funkcji rank () w Oracle, użyjemy domyślnej kolekcji tabeli pracowników.
Rozważ następującą tabelę:
Wybierz nazwę First_name, Last_name, wynagrodzenie, Job_id od pracowników EMP;Wynik:
Przykład 1: Korzystanie z funkcji rangi do określenia rangi
Ten przykład pokazuje użycie funkcji rank () w określaniu rangi każdego pracownika w tabeli.
Wybierz nazwę pierwszej nazwy, Last_name, wynagrodzenie, Job_id, rank () ponad (zamówienie według wynagrodzenia ASC) jako rangaW dostarczonym zapytaniu używamy funkcji rangi, aby przypisać ranking do każdego wiersza w tabeli pracowników na podstawie wartości w kolumnie wynagrodzeń.
Funkcja używa klauzuli „Zakaz według”, aby określić kolejność, w jakiej wiersze są uszeregowane. W naszym przykładzie używamy kolejności rosnącej na podstawie wartości kolumny pensji.
Następnie funkcja przypisuje wiersz o najniższym wynagrodzeniu Ranga 1 i najwyższej rangi wynagrodzenia N, gdzie n reprezentuje liczbę wierszy w tabeli.
Jak można zauważyć, wierszy o podobnych wartościach wynagrodzeń przypisane są tej samej rangi.
Przykład 2: Korzystanie z funkcji rankingu z klauzulą zamówienia
Załóżmy, że chcemy zgrupować wiersze na podstawie JOB_ID, a następnie przypisać rangę do wierszy w każdej partycji.
Możemy wykonać zapytanie, jak pokazano następująco:
Wybierz nazwę pierwszej nazwy, pensja, pensja, Job_id, rank () Over (Partycja według klauzuli dzieli wiersze od tabeli pracownika na różne grupy na podstawie kolumny Job_id.
Następnie funkcja rang przypisuje ranking do każdego wiersza w każdej partycji z najniższą pensją w każdej partycji, otrzymując rangę 1 i najwyższą pensję w każdej partycji, otrzymując stopień N (gdzie n jest liczbą wierszy w partycji).
Wynik:
Wniosek
W tym samouczku nauczyłeś się, jak korzystać z funkcji Oracle Rank (). Chociaż funkcja rank () może być korzystna, może prowadzić do trafienia wydajności, szczególnie podczas pracy z złożonymi zapytaczami i dużymi zestawami danych.