SQL rangieren

SQL rangieren
Mit dem Ranking in SQL können Sie den Rang jedes Datensatzes innerhalb einer Partition innerhalb eines Ergebnissatzes berechnen.

Der Rank () gibt einen 1-basierten Index für jeden Datensatz in einer geordneten Partition in Standard SQL zurück. Denken Sie daran, dass die Funktion den Partitionen mit ähnlichen Werten den gleichen Rangwert zuweist.

Die Anzahl der vorherigen Rangwerte erhöht jeden daraus resultierenden Rangwert. Wenn Sie den Rangwert nach 1 erhöhen möchten, verwenden Sie die Funktion dense_rank ().

Rank () Funktionssyntax

Die Syntax für die Rangfunktion ist wie unten gezeigt:

Rank () über (
[Partition durch Ausdruck,]
Ordnung durch Ausdruck (ASC | Desc));
);

Um zu veranschaulichen, wie diese Funktion verwendet wird, betrachten Sie das folgende Beispiel:

Tabellenbenutzer erstellen (Benutzer
id serielle Primärschlüssel,
First_Name Varchar (100),
last_name varchar (100),
Status varchar (25),
aktiver Bool
);
Einfügen in Benutzer (First_Name, Last_name, Status, Active) Werte (
'Mary', 'Smith', 'New York', wahr);
Einfügen in Benutzer (First_Name, Last_name, Status, Active) Werte (
'Linda', 'Williams', 'Colorado', falsch);
Einfügen in Benutzer (First_Name, Last_name, Status, Active) Werte (
'Taylor', 'Moore', 'Utah', wahr);
Einfügen in Benutzer (First_Name, Last_name, Status, Active) Werte (
"Susan", "Wilson", "Washington", wahr);
Einfügen in Benutzer (First_Name, Last_name, Status, Active) Werte (
'Mary', 'Smith', 'New York', wahr);
Einfügen in Benutzer (First_Name, Last_name, Status, Active) Werte (
'Taylor', 'Moore', 'Utah', wahr);

Die obigen Abfragen erstellen und fügen Sie Beispieldaten in die Tabelle ein und fügen Sie ein.

Um den Datensätzen im Ergebnissatz einen Rang zuzuweisen, können wir die unten dargestellte Rank () -Funktion verwenden.

Wählen Sie ID, First_name, last_name, Status, aktiv,
Rank () over (Partition nach aktiver Reihenfolge nach ID) rank_value
von Benutzern;

In der obigen Abfrage teilen wir die Daten nach der aktiven Spalte auf. Die Spalte enthält booleale Werte. Wir rangieren dann über jeden Punkt in den Partitionen.

Der resultierende Satz ist wie gezeigt:

Beachten Sie, dass das Ergebnis zwei Partitionen enthält, die falsche Werte enthält, und das andere, der echte Werte enthält.

In der Partition „False“ weist die Funktion die Rangwerte zu. Der gleiche Fall für die „wahre“ Partition. Beachten Sie, dass die Funktion den Rangwert von 1 in einer neuen Partition startet.

Schließen

Dieses Tutorial hat Ihnen gezeigt. Überprüfen Sie die Dokumentation für Ihre Datenbank -Engine, um mehr zu erfahren.

Danke fürs Lesen!!