SQL Server -Rangfunktion

SQL Server -Rangfunktion

Es besteht eine grundlegende Notwendigkeit, bei der Arbeit mit Daten verschiedene Datensätze zu kategorisieren oder zu bewerten. Zum Beispiel könnten Sie Teams basierend auf ihren Punktzahlen, Mitarbeitern auf der Grundlage ihres Gehalts und vielem mehr bewerten.

Die meisten von uns führen Berechnungen mit Funktionen aus, die einen einzelnen Wert zurückgeben. In diesem Handbuch werden wir untersuchen.

SQL Server Rank () Funktion: Die Grundlagen

Die Funktion rank () ist Teil der SQL Server -Fensterfunktionen. Es funktioniert, indem es jeder Zeile für eine bestimmte Partition des resultierenden Satzes einen Rang zuweist.

Die Funktion weist denselben Rangwert für die Zeilen innerhalb einer ähnlichen Partition zu. Es weist den ersten Rang und den Wert von 1 zu und fügt jedem Rang einen aufeinanderfolgenden Wert hinzu.

Die Syntax für die Rangfunktion lautet als:

rangieren (
[Partition durch Ausdruck],
Ordnung durch Ausdruck [ASC | Desc]
);

Lassen Sie uns die obige Syntax aufschlüsseln.

Die Partition nach Klausel unterteilt Zeilen in bestimmte Partitionen, bei denen die Rangfunktion angewendet wird. In einer Datenbank, die Mitarbeiterdaten enthält, können Sie beispielsweise Zeilen auf der Grundlage der Abteilungen, in denen sie arbeiten.

Die nächste Klausel, order by, definiert die Reihenfolge, in der die Zeilen in den angegebenen Partitionen organisiert sind.

SQL Server Rank () Funktion: Praktische Verwendung

Nehmen wir ein praktisches Beispiel, um zu verstehen, wie die Funktion rank () auf SQL Server verwendet wird.

Erstellen Sie zunächst eine Beispieltabelle mit Mitarbeiterinformationen.

Tischentwickler erstellen (
ID INT -Identität (1,1), kein Null -Primärschlüssel,
Nennen Sie Varchar (200) nicht null,
Abteilungsvarchar (50),
Gehaltsgeld
);

Fügen Sie als nächstes einige Daten zur Tabelle hinzu:

In Entwickler einfügen (Name, Abteilung, Gehalt)
Werte ('Rebecca', 'Game Developer', $ 120000),
('James', 'Mobiler Entwickler', $ 110000),
('Laura', 'DevOps Developer', $ 180000),
('Quill', 'Mobiler Entwickler', 109000 US -Dollar),
('John', 'Full-Stack Developer', 182000 US-Dollar),
('Matthew', 'Game Developer', $ 140000),
('Caitlyn', 'DevOps Developer', $ 123000),
('Michelle', 'Data Science Developer', $ 204000),
("Antony", "Front-End-Entwickler", 103100 US-Dollar),
('Khadija', 'Backend Developer', $ 193000),
('Joseph', 'Game Developer', $ 11500);
Wählen Sie * von Entwicklern aus;

Sie sollten eine Tabelle mit den Datensätzen wie gezeigt haben:

Beispiel 1: Bestellung von

Verwenden Sie die Rangfunktion, um den Daten Ränge zuzuweisen. Eine Beispielabfrage ist wie gezeigt:

Select *, Rank () over (Order by Department) als Rank_Number von Entwicklern;

Die obige Abfrage sollte die Ausgabe wie gezeigt ergeben:

Die obige Ausgabe zeigt, dass die Funktion die Zeilen aus ähnlichen Abteilungen einen ähnlichen Rangwert zugewiesen hat. Beachten Sie, dass die Funktion abhängig von der Anzahl der Werte mit demselben Rang einige Rangwerte überspringt.

Zum Beispiel springt die Funktion aus dem Rang von 7 auf Rang 10, da Rang 8 und 9 den beiden aufeinanderfolgenden Werten von Rang 7 zugeordnet sind.

Beispiel 2: Partition von

Betrachten Sie das folgende Beispiel unten. Es verwendet die Rangfunktion, um den Entwicklern in derselben Abteilung einen Rang zuzuweisen.

Wählen Sie *, rank () over (Partition nach Abteilungsbefehl nach Gehaltsgehalt) als Rank_Number von Entwicklern;

Die obige Abfrage beginnt damit, die Zeilen gemäß ihren Abteilungen aufzuteilern. Als nächstes sortiert die Bestellung nach Klausel die Aufzeichnungen in jeder Partition nach dem Gehalt in absteigender Reihenfolge.

Die resultierende Ausgabe ist wie gezeigt:

Abschluss

In diesem Leitfaden haben wir behandelt, wie man mit der Rangfunktion in SQL Server arbeitet, sodass Sie Zeilen partitionieren und rangieren können.

Danke fürs Lesen!