SQL Server Funkcja rang

SQL Server Funkcja rang

Istnieje podstawowa potrzeba kategoryzacji lub rankingu różnych rekordów podczas pracy z danymi. Na przykład możesz uszeregować zespoły na podstawie ich wyników, pracowników na podstawie ich pensji i wielu innych.

Większość z nas wykonuje obliczenia za pomocą funkcji, które zwracają jedną wartość. W tym przewodniku zbadamy, jak korzystać z funkcji rangi SQL Server, aby zwrócić wartość agregowaną dla określonej grupy wierszy.

SQL Server Rank () Funkcja: Podstawy

Funkcja rank () jest częścią funkcji okien SQL Server. Działa poprzez przypisanie rangi do każdego wiersza dla określonej partycji powstałego zestawu.

Funkcja przypisuje tę samą wartość rang dla wierszy w podobnej partycji. Przypisuje pierwszą rangę, wartość 1 i dodaje wartość kolejną do każdej rangi.

Składnia funkcji rang jest:

uszeregować (
[partycja według wyrażenia],
Zamów według wyrażenia [ASC | dec]
);

Rozbijmy powyższą składnię.

Partycja według klauzuli dzieli wiersze na określone partycje, w których stosuje się funkcję rang. Na przykład w bazie danych zawierającej dane pracowników możesz podzielić wiersze na podstawie działów, w których działają.

Następna klauzula, zamówienie, określa kolejność, w jakiej wiersze są zorganizowane w określonych partycjach.

SQL Server Rank () Funkcja: praktyczne użycie

Weźmy praktyczny przykład, aby zrozumieć, jak korzystać z funkcji rank () na serwerze SQL.

Zacznij od utworzenia przykładowej tabeli zawierającej informacje o pracownikach.

Utwórz twórców tabeli (
Id Int tożsamość (1,1), a nie zerowy klucz podstawowy,
Nazwa varchar (200) nie null,
Departament Varchar (50),
Pieniądze z wynagrodzenia
);

Następnie dodaj kilka danych do tabeli:

Wstaw do programistów (nazwa, dział, wynagrodzenie)
Wartości („Rebecca”, „Game Developer”, 120000 $),
(„James”, „Mobile Developer”, 110000 $),
(„Laura”, „DevOps Developer”, 180000 $),
(„Quill”, „Mobile Developer”, 109000 $),
(„John”, „programista pełny stos”, 182000 $),
(„Matthew”, „Game Developer”, 140000 $),
(„Caitlyn”, „DevOps Developer”, 123000 $),
(„Michelle”, „Data Science Developer”, 204000 $),
(„Antony”, „Front-end Developer”, 103100 $),
(„Khadija”, „Backend Developer”, 193000 $),
(„Joseph”, „Game Developer”, 11500 $);
Wybierz * od programistów;

Powinieneś mieć tabelę z rekordami, jak pokazano:

Przykład 1: Zamówienie według

Użyj funkcji rangi, aby przypisać szeregi do danych. Przykładowe zapytanie jest takie, jak pokazano:

Wybierz *, rank () ponad (zamówienie według działu) jako rank_number od programistów;

Powyższe zapytanie powinno dać wyjście, jak pokazano:

Powyższe wyjście pokazuje, że funkcja przypisała wiersze z podobnych działów podobną wartość rang. Zwróć uwagę, że funkcja pomija niektóre wartości rang w zależności od liczby wartości o tej samej randze.

Na przykład z rangi 7 funkcja przeskakuje do rangi 10, ponieważ ranga 8 i 9 są przypisane do dwóch kolejnych wartości rangi 7.

Przykład 2: partycja przez

Rozważ przykład poniżej. Używa funkcji rangi, aby przypisać rangę deweloperom w tym samym dziale.

Wybierz *, rank () ponad (partycja według zamówienia działu według wynagrodzenia desc) jako rank_number od deweloperów;

Powyższe zapytanie zaczyna się od podziału wierszy według ich działów. Następnie zlecenie według klauzuli sortuje rekordy w każdej partycji według wynagrodzenia w kolejności malejącej.

Powstałe wyjście jest jak pokazano:

Wniosek

W tym przewodniku omówiliśmy, jak pracować z funkcją rang w SQL Server, umożliwiając partycjonowanie i ranking wierszy.

Dziękuje za przeczytanie!