NTILE

Syntax

Beschreibung von ntile.es folgt

Beschreibung der Abbildung ntile.gif

Siehe auch:

„Analytische Funktionen“ für Informationen zu Syntax, Semantik und Einschränkungen, einschließlich gültiger Formen von expr

Zweck

NTILE ist eine analytische Funktion. Es teilt einen geordneten Datensatz in eine Anzahl von Buckets, die mit expr angegeben sind, und weist jeder Zeile die entsprechende Bucket-Nummer zu. Die Buckets sind von 1 bis expr nummeriert. Der Wert expr muss für jede Partition in eine positive Konstante aufgelöst werden. Oracle Database erwartet eine Ganzzahl, und wenn expr eine nicht ganzzahlige Konstante ist, schneidet Oracle den Wert in eine Ganzzahl ab. Der Rückgabewert ist NUMBER.

Die Anzahl der Zeilen in den Buckets kann um höchstens 1 abweichen. Die Restwerte (der Rest der Anzahl der Zeilen geteilt durch Buckets) werden für jeden Bucket einzeln verteilt, beginnend mit Bucket 1.

Wenn expr größer als die Anzahl der Zeilen ist, wird eine Anzahl von Buckets gefüllt, die der Anzahl der Zeilen entspricht, und die verbleibenden Buckets sind leer.

Sie können NTILE oder eine andere Analysefunktion für expr nicht verwenden. Das heißt, Sie können Analysefunktionen nicht verschachteln, aber Sie können andere integrierte Funktionsausdrücke für expr verwenden.

Siehe auch:

„Über SQL-Ausdrücke“ für Informationen zu gültigen Formen von expr und Tabelle 2-10, „Implizite Typkonvertierungsmatrix“ für weitere Informationen zur impliziten Konvertierung

Beispiele

Das folgende Beispiel unterteilt die Werte in der Spalte salary der Tabelle oe.employees aus Abteilung 100 in 4 Buckets. Die Spalte salary enthält 6 Werte in dieser Abteilung, sodass die beiden zusätzlichen Werte (der Rest von 6/4) den Buckets 1 und 2 zugewiesen werden, die daher einen Wert mehr haben als die Buckets 3 oder 4.

SELECT last_name, salary, NTILE(4) OVER (ORDER BY salary DESC) AS quartile FROM employees WHERE department_id = 100;LAST_NAME SALARY QUARTILE------------------------- ---------- ----------Greenberg 12000 1Faviet 9000 1Chen 8200 2Urman 7800 2Sciarra 7700 3Popp 6900 4



+