Menu
Coddy logo textTech

NTILE Function

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

NTILE(n) nummeriert die Zeilen, indem es sie in n ungefähr gleich große Stücke aufteilt. Es wird oft für Leistungsverbesserungen verwendet – das Senden großer Datenmengen auf einmal ist möglicherweise keine gute Idee, daher ermöglicht diese Funktion das Senden kleinerer Stücke zur Zeit.

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 Gruppen: Ebene 4 in Gruppe 1, Ebene 5 und Ebene 6 in Gruppe 2 und Ebene 7 in Gruppe 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. Zum Beispiel, wenn Sie 9 Zeilen und NTILE(4) haben, wäre die Verteilung:

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

Dies stellt sicher, dass keine Gruppe sich um mehr als eine Zeile von einer anderen Gruppe unterscheidet und dass überschüssige Zeilen zuerst den niedriger nummerierten Gruppen zugeteilt werden.

challenge icon

Aufgabe

Einfach

Verfügbare Tabellen und Spalten:

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

In dieser Herausforderung haben wir Kreaturen, die einen bedeutenden anderen finden möchten. Wir müssen ihnen helfen, ihr Match zu finden.

Jede Kreatur hat eine Präferenz, die als Zahl dargestellt wird. Wenn beide Kreaturen eine Zahl haben, die nah genug beieinander liegt, könnten sie ein gutes Match sein.

Teile die Kreaturen in 3 Gruppen ein, basierend auf ihren Präferenzwerten, aber berücksichtige nur Kreaturen mit Beinen (wo has_legs = 'YES'). Gib den creature_name, preference und ihre group_number (1, 2 oder 3) zurück. Ordne die Ergebnisse nach preference in aufsteigender Reihenfolge an.

Spickzettel

Die NTILE(n)-Funktion teilt Zeilen in n ungefähr gleich große Gruppen auf und nummeriert sie sequentiell:

SELECT column1, column2, NTILE(3) OVER (ORDER BY column2) as group_number
FROM table_name

Wenn die Zeilen nicht gleichmäßig durch n teilbar sind, verteilt NTILE die Zeilen so gleichmäßig wie möglich, wobei die größeren Gruppen zuerst erscheinen. Zum Beispiel mit 9 Zeilen und NTILE(4):

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

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