Tag 4: Advance SQL für Data Science
Dieser Blog enthält Window-Ranking-Funktionen in SQL wie (Rank, Dense_Rank, Row_Number, Lead, Lag).
Rang()
Diese RANK()Funktion berechnet einen Rang für jede Zeile innerhalb einer Partition einer Ergebnismenge.
Die Syntax der Fensterfunktion Rank():-
RANK() OVER (
[PARTITION BY partition_expression, ... ]
ORDER BY sort_expression [ASC | DESC], ...
)
- In
ORDER BYder Klausel wird angegeben, ob die Zeile für jede Partition, auf die die Rank()-Funktion angewendet wird, in aufsteigender/absteigender Reihenfolge der Zeilen sortiert werden muss.
Wir wenden Rank() auf die Gehaltsspalte an: select *, rank() over (order by Salary desc) rn from Employee e;
Die Funktion rank() teilt die Gehaltsspalte in absteigender Reihenfolge auf.
Jetzt wenden wir Rank() mit Partition by select *, rank() over (Partition by name order by Salary desc) rn from Employee e an
In dieser Funktion teilt Rank() die Spalte „Name“ mit der Spalte „Gehalt“ in absteigender Reihenfolge auf.
DENSE_RANK()
Die DENSE_RANK()Funktion gibt aufeinanderfolgende Rangwerte zurück, wobei jede Zeile in jeder Partition die gleichen Ränge erhält, wenn sie die gleichen Werte haben.
Die Syntax der Fensterfunktion Dense_Rank():-
DENSE_RANK() OVER (
[PARTITION BY partition_expression, ... ]
ORDER BY sort_expression [ASC | DESC], ...
)
Jetzt wenden wir Dense_Rank() mit Partition by: select *, dense_rank() over (Partition by name order by Salary desc) rn from Employee e an
In dieser Dense_Rank()-Funktion wird die Partition der Namensspalte mit der Gehaltsspalte in absteigender Reihenfolge aufgeteilt.
ZEILENNUMMER()
Dies ROW_NUMBER()ist eine einfache Fensterfunktion, die der entsprechenden Zeile eine ganzzahlige Zeilennummer zuweist. Die Zeilennummer beginnt mit 1 für die erste Zeile in jeder Partition.
Die Syntax der Fensterfunktion Row_number():-
ROW_NUMBER() OVER (
[PARTITION BY partition_expression, ... ]
ORDER BY sort_expression [ASC | DESC], ...
)
Wir wenden row_number() mit Partition by an: select *, rank() over (Partition by name order by Salary desc) rn from Employee e;
In dieser Row_Number()-Funktion wird die Spalte „Name“ mit der Spalte „Gehalt“ in absteigender Reihenfolge aufgeteilt.
LEAD() und LAG()
LAG()und LEAD()sind Positionsfunktionen. Hierbei handelt es sich um Fensterfunktionen, die beim Erstellen von Berichten sehr nützlich sind, da sie auf Daten aus Zeilen oberhalb oder unterhalb der aktuellen Zeile verweisen können
Die LAG()Funktion ermöglicht den Zugriff auf einen Wert, der in einer anderen Zeile oberhalb der aktuellen Zeile gespeichert ist.
Syntax von LAG():
LAG(expression [,offset[,default_value]]) OVER(ORDER BY columns)
LEAD()ist ähnlich zu LAG(). Während LAG()auf einen Wert zugegriffen wird, der in einer Zeile darüber gespeichert ist, LEAD()wird auf einen Wert zugegriffen, der in einer Zeile darunter gespeichert ist.
Syntax von Lead():
LEAD(expression [,offset[,default_value]]) OVER(ORDER BY columns)
HINWEIS: Die PARITION BYKlausel ist optional. Wenn Sie es weglassen, behandelt die Funktion die gesamte Ergebnismenge als eine einzelne Partition.
Vielen Dank, dass Sie es gelesen haben.
============================DAS ENDE=================== =======
GitHub: Sitzung Tag 4
Bitte gib ihm einen Stern auf Github!!
Referenz :
- https://www.w3schools.com/sql/default.asp
- https://www.geeksforgeeks.org/
Folgen Sie mir für weitere Beiträge zum Thema Data Science!
Lassen Sie uns auf LinkedIn vernetzen !

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































