ROW_NUMBER

ROW_NUMBERsortiert die Elemente einer Dimension basierend auf den Werten eines Ausdrucks. Die Funktion gibt die Folgenummern der Dimensionselemente zurück.

ROW_NUMBER weist jedem Dimensionselement eine eindeutige Rangfolge zu. Bei identischen Werten ist die Rangfolge zufällig. ROW_NUMBER gibt z.B. immer 1, 2, 3, 4, 5 für eine Reihe von fünf Dimensionselementen zurück, selbst wenn alle denselben Wert haben.

Rückgabewert

NUMBER

Syntax

ROW_NUMBER (ntile_expression) OVER HIERARCHY
     ( dimension | hierarchy
       ORDER BY expression [ASC | DSC] [NULLS {FIRST | LAST}]...
       WITHIN {PARENT | LEVEL | ANCESTOR AT LEVEL level}
     )

Argumente

ntile_expression ist in dieser Funktion nicht implementiert.

Dimension ist die Dimension, für deren Elemente die Rangfolge bestimmt wird.

hierarchy ist eine Hierarchie der Dimension. Sonst wird die Standardhierarchie benutzt.

ORDER BY gibt die Basis für die Rangfolge an. Sie können zusätzliche ORDER BY-Klauseln angeben, die als Tiebreak für die Reihenfolge benutzt werden.

Ausdruck stellt den Wert bereit, der als Basis für die Rangfolge benutzt werden soll.

ASC erstellt die Rangfolge von dem kleinsten bis zum größten Datenwert.

DSC erstellt die Rangfolge vom größten zum kleinsten Datenwert.

NULLS FIRST führt die Elemente mit Nullwerten zuerst auf.

NULLS LAST führt die Elemente mit Nullwerten zuletzt auf.

WITHIN wählt eine Gruppe von zusammengehörigen Dimensionselementen zur Bestimmung der Rangfolge.

PARENT legt die Rangfolge der Elemente auf derselben Ebene mit demselben übergeordneten Element fest.

LEVEL legt die Rangfolge aller Elemente auf derselben Ebene fest.

ANCESTOR AT LEVEL Ebene bestimmt die Rangfolge aller Elemente auf derselben Ebene und mit demselben übergeordneten Element auf einer angegebenen Ebene.

Beispiel

Das folgende Beispiel bestimmt die Rangfolge von Kunden innerhalb jeder Region basierend auf den Werten der Kennzahl UNITS. Ministry of Intl. Trad Nagano and KOSH Entrpr Bristol haben denselben Wert für UNITS, die Rangfolge ist jedoch willkürlich 3.00 und 4.00.

ROW_NUMBER () OVER HIERARCHY (GLOBAL.CUSTOMER.SHIPMENTS_ROLLUP ORDER BY GLOBAL.UNITS_CUBE.UNITS NULLS LAST WITHIN ANCESTOR AT LEVEL GLOBAL.CUSTOMER.REGION)

Beispiel für ROW_NUMBER-Funktion
Kunde
Ebene
Einheiten
Zeilennummer
Asien REGION
21,764.91
Null
Japan WAREHOUSE
10,930.17
4.00
Australien WAREHOUSE
5,371.84
3.00
Hongkong WAREHOUSE
2,799.93
2.00
Singapur WAREHOUSE
2,662.96
1.00
KOSH Entrpr Wanchai SHIP_TO
2,799.93
8.00
Computer Services Tokyo SHIP_TO
2,761.41
7.00
Ministry of Intl. Trad Nagoya SHIP_TO
2,754.14
6.00
KOSH Entrpr Tokyo SHIP_TO
2,714.69
5.00
KOSH Entrpr Bristol SHIP_TO
2,699.94
4.00
Ministry of Intl. Trad Nagano SHIP_TO
2,699.94
3.00
KOSH Entrpr Brisbane SHIP_TO
2,673.73
2.00
Computer Warehouse Singapore SHIP_TO
2,662.96
1.00

Verwandte Themen

AVERAGE_RANK, DENSE_RANK, RANK