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 )
Fensterspezifikation: Weitere Hinweise finden Sie im folgenden Abschnitt "Bemerkungen".
INTEGER
Elemente von Fensterspezifikation können entweder in der Funktionssyntax (inline) oder mit einer WINDOW-Klausel in der SELECT-Anweisung angegeben werden. Bei Verwendung als Fensterfunktion müssen Sie eine ORDER BY-Klausel angeben und dürfen eine PARTITION BY-Klausel angeben, können jedoch keine ROWS- oder RANGE-Klausel angeben. Weitere Hinweise finden Sie in der Fensterspezifikation-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 GROUPO.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 © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |