Menu
Coddy logo textTech

NTILE-Funktion

Teil des Abschnitts Grundlagen der SQL-Journey von Coddy. Lektion 67 von 72.

NTILE(n) nummeriert die Zeilen, indem sie in n annähernd gleich große Teile aufgeteilt werden. Es wird häufig zur Leistungsoptimierung verwendet – große Datenmengen auf einmal zu senden, ist möglicherweise keine gute Idee, daher ermöglicht diese Funktion, kleinere Teile nacheinander zu senden.

Zum Beispiel:

idlevel
14
24
35
46
57
67
SELECT id, level, NTILE(3) OVER (ORDER BY level) as pieces
from table1

Dies wird zurückgeben:

idlevelpieces
141
241
352
462
573
673

Wir haben 3 Teile: Ebene 4 in Teil 1, Ebene 5 und Ebene 6 in Teil 2 sowie Ebene 7 in Teil 3.
Wenn die Anzahl der Zeilen nicht gleichmäßig durch n teilbar ist, verteilt NTILE die Zeilen so gleichmäßig wie möglich, wobei die größeren Gruppen zuerst erscheinen. Wenn du beispielsweise 9 Zeilen und NTILE(4) hast, wäre die Verteilung:

  • Gruppe 1: 3 Zeilen
  • Gruppe 2: 2 Zeilen
  • Gruppe 3: 2 Zeilen
  • Gruppe 4: 2 Zeilen

Dadurch wird sichergestellt, dass sich keine Gruppe um mehr als eine Zeile von einer anderen Gruppe unterscheidet und zusätzliche Zeilen zuerst auf die Gruppen mit den niedrigeren Nummern verteilt werden.

challenge icon

Aufgabe

Einfach

Verfügbare Tabellen und Spalten:

  • creatures: creature_name, preference, has_legs (enthält 'YES' oder 'NO')

In dieser Herausforderung haben wir Kreaturen, die einen Partner finden möchten. Wir müssen ihnen helfen, ihr passendes Gegenstück zu finden.

Jede Kreatur hat eine Präferenz, die durch eine Zahl dargestellt wird. Wenn beide Kreaturen eine ausreichend ähnliche Zahl haben, könnten sie gut zusammenpassen.

Teile die Kreaturen anhand ihrer Präferenzwerte in 3 Gruppen ein, berücksichtige dabei jedoch nur Kreaturen mit Beinen (wobei has_legs = 'YES' gilt). Gib creature_name, preference und ihre group_number (1, 2 oder 3) zurück. Sortiere die Ergebnisse nach preference in aufsteigender Reihenfolge.

Probier es selbst

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: SQL-Playground