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:
| id | level |
| 1 | 4 |
| 2 | 4 |
| 3 | 5 |
| 4 | 6 |
| 5 | 7 |
| 6 | 7 |
SELECT id, level, NTILE(3) OVER (ORDER BY level) as pieces
from table1Dies wird zurückgeben:
| id | level | pieces |
| 1 | 4 | 1 |
| 2 | 4 | 1 |
| 3 | 5 | 2 |
| 4 | 6 | 2 |
| 5 | 7 | 3 |
| 6 | 7 | 3 |
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.
Aufgabe
EinfachVerfü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_nameWenn 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
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns9Multiple tables
Basic Join Part 1Basic Join Part 2Recap - JoinSelf joinRecap - Self JoinUnionSimplify queries, WITH keywordRecap - With QueriesRecap - Real Estate Contractor12Window Functions part 2
RANK & DENSE_RANK FunctionsRecap - RANK & DENSE_RANKNTILE FunctionAggregation FunctionsROWS & RANGE Criterion