[Oracle] Datensätze in eine bestimmte Anzahl von Gruppen unterteilen - NTILE

Drucken
( 0 Votes ) 
Hauptkategorie: Programmieren Kategorie: SQL
Erstellt am 06.03.2012 Zuletzt aktualisiert am 06.03.2012 Geschrieben von Jonny132
Oftmals ist es Hilfreich ein Ergebnis einer Abfrage in gleichgroße Gruppen zu unterteilen. Dies ist mit Hilfe des Schlüsselwortes NTILE möglich.
Ein Anwendungsfall wäre z.B. Das Einkommen der Mitarbeiter. Wir möchten alle Mitarbeiter in 3 gleichgroße Gehaltsgruppen unterteilen. Von Gut-Verdienend über Mittelmäßig-Verdienend bis hin zu Schlecht-Verdienend.

Die Syntax dieses Befehls sieht folgendermaßen aus:
Select name, gehalt, NTILE(3) OVER(ORDER BY gehalt DESC) as gehaltsgruppe
  from mitarbeiter
Ergebnis:
NAME GEHALT GEHALTSGRUPPE
Cheff 10000 1
Peter 6000 1
Susanne 5000 1
Wolfgang 4000 2
Michaela 2600 2
Stefan 2400 2
Oliver 2100 3
Claudia 1800 3
Hubert 1500 3

Eigenschaften von NTILE:
  • Erstellt wenn möglich immer gleichgroße Gruppen
  • ORDER BY muss immer angegeben werden
  • Die Anzahl der Gruppen wird automatisch reduziert, falls weniger Werte als Gruppen vorhanden sind 



    Veröffentlichen Sie ihre Kommentare ...