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ć (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 (Następnie dodaj kilka danych do tabeli:
Wstaw do programistów (nazwa, dział, wynagrodzenie)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!