Berechnet den Rang eines Werts in einer Partition. Bei gebundenen Werten verhindert die DENSE_RANK-Funktion Lücken in der Rangfolge-Sequenz.
DENSE_RANK( ) OVER ( window-spec )
winodow-spec: Weitere Hinweise finden Sie im folgenden Abschnitt "Bemerkungen".
INTEGER
Elemente von window-spec können in der Funktionssyntax (Inline) oder zusammen mit einer WINDOW-Klausel in der SELECT-Anweisung angegeben werden. Wenn sie als eine Fensterfunktion verwendet wird, müssen Sie eine ORDER BY-Klausel angeben und können eine PARTITION BY-Klausel angeben. Allerdings dürfen Sie keine ROWS- oder RANGE-Klausel angeben. Weitere Hinweise finden Sie in der winodow-spec-Definition der WINDOW-Klausel.
SQL/2008 Die DENSE_RANK-Funktion umfasst einen Teil der optionalen SQL/2008-Sprachenfunktion T612, "Erweiterte OLAP-Vorgänge".
SQL Anywhere unterstützt die SQL/2008 -Sprachenfunktion F441, "Extended set function support", die es zulässt, dass Operanden von Fensterfunktionen beliebige Ausdrücke sind, die keine Spaltenreferenzen darstellen.
SQL Anywhere bietet keine Unterstützung für die optionale SQL/2008-Funktion F442, "Gemischte Spaltenreferenzen in Gruppenfunktionen". SQL Anywhere lässt es nicht zu, dass die Argumente einer Aggregatfunktion sowohl eine Spaltenreferenz aus dem Abfrageblock mit der DENSE_RANK-Funktion als auch eine äußere Referenz enthalten. Ein Beispiel finden Sie unter AVG-Funktion [Aggregat].
Das folgende Beispiel gibt eine Ergebnismenge zurück, die die Rangfolge der Gehälter von Mitarbeitern in Utah und New York liefert. Auch wenn 19 Datensätze in der Ergebnismenge zurückgegeben werden, sind nur 18 Ränge angeführt, weil der 7. Rang vom 7. und 8. Mitarbeiter, die beide das gleiche Gehalt erhalten, geteilt wird. Der 9. Mitarbeiter wird nicht an 9., sondern an 8. Stelle aufgereiht, weil die DENSE_RANK-Funktion Lücken in der Rangfolge verhindert.
SELECT DepartmentID, Surname, Salary, State, DENSE_RANK() OVER (ORDER BY Salary DESC) AS SalaryRank FROM Employees WHERE State IN ('NY','UT'); |
Die Ergebnismenge sieht folgendermaßen aus:
DepartmentID | Surname | Salary | State | SalaryRank |
---|---|---|---|---|
100 | Shishov | 72995.000 | UT | 1 |
100 | Wang | 68400.000 | UT | 2 |
100 | Cobb | 62000.000 | UT | 3 |
400 | Morris | 61300.000 | UT | 4 |
300 | Davidson | 57090.000 | NY | 5 |
200 | Martel | 55700.000 | NY | 6 |
400 | Blaikie | 54900.000 | NY | 7 |
100 | Diaz | 54900.000 | UT | 7 |
100 | Driscoll | 48023.000 | UT | 8 |
400 | Hildebrand | 45829.000 | UT | 9 |
100 | Whitney | 45700.000 | NY | 10 |
100 | Guevara | 42998.000 | NY | 11 |
100 | Soo | 39075.000 | NY | 12 |
200 | Goggin | 37900.000 | UT | 13 |
400 | Wetherby | 35745.000 | NY | 14 |
400 | Ahmed | 34992.000 | NY | 15 |
500 | Rebeiro | 34576.000 | UT | 16 |
300 | Bigelow | 31200.000 | UT | 17 |
500 | Lynch | 24903.000 | UT | 18 |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |