Oracle Rank Funkcja

Oracle Rank Funkcja

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 (
[query_partition_clause]
Zamów przez sort_Expression [ASC | DESC] [NULLS First | OSTATNI]
);

Funkcja obsługuje następujące parametry:

  1. query_partition_clause - Jest to opcjonalna klauzula, która określa warunek podziału wierszy w wynikach zapytania ustawionych na różne grupy lub partycje. Funkcja rank () jest następnie stosowana indywidualnie do powstałych partycji.
  2. sort_Expression - Ten parametr ustawia kolumnę lub wyrażenie używane do określenia rankingu wierszy. Powstałe rzędy są uszeregowane w kolejności rosnącej lub malejącej zgodnie z definicją słów kluczowych ASC i DESC. Domyślna kolejność sortowania jest ustawiona na rosnące.
  3. Wreszcie, słowo kluczowe zerowych określa, w jaki sposób funkcja traktuje wszelkie wartości zerowe podczas rankingu wierszy. Zaakceptowane parametry obejmują:
    • Pierwsze i ostatnie słowa kluczowe, które określają, czy wartości zerowe powinny być rankingowe pierwsze, czy ostatnie. Domyślnie funkcja najpierw sortuje wartości zerowe.

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 ranga
od pracowników EMP;

W 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 przez Job_id
Zamówienie według wynagrodzenia ASC
) Jako ranga
Od pracowników EMP;

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.