Funzione NTILE
Fa parte della sezione Fondamenti del percorso SQL di Coddy. Lezione 67 di 72.
NTILE(n) numera le righe suddividendole in n parti approssimativamente uguali. Viene spesso usata per migliorare le prestazioni: inviare grandi quantità di dati tutte in una volta potrebbe non essere una buona idea, quindi questa funzione permette di inviare parti più piccole alla volta.
Per esempio:
| 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 table1Questo restituirà:
| id | level | pieces |
| 1 | 4 | 1 |
| 2 | 4 | 1 |
| 3 | 5 | 2 |
| 4 | 6 | 2 |
| 5 | 7 | 3 |
| 6 | 7 | 3 |
Abbiamo ottenuto 3 gruppi: il livello 4 nel gruppo 1, il livello 5 e il livello 6 nel gruppo 2 e il livello 7 nel gruppo 3.
Quando il numero di righe non è divisibile equamente per n, NTILE distribuisce le righe nel modo più uniforme possibile, con i gruppi più grandi che compaiono per primi. Per esempio, se hai 9 righe e NTILE(4), la distribuzione sarebbe:
- Gruppo 1: 3 righe
- Gruppo 2: 2 righe
- Gruppo 3: 2 righe
- Gruppo 4: 2 righe
Questo garantisce che nessun gruppo differisca dagli altri di più di una riga e che le righe extra siano distribuite prima ai gruppi con numero più basso.
Sfida
FacileTabelle e colonne disponibili:
creatures:creature_name,preference,has_legs(contiene 'YES' o 'NO')
In questa sfida, abbiamo creature che vogliono trovare un partner. Dobbiamo aiutarle a trovare la persona giusta.
Ogni creatura ha una preferenza rappresentata da un numero. Se entrambe le creature hanno un numero abbastanza simile, potrebbero essere una buona coppia.
Dividi le creature in 3 gruppi in base ai valori delle loro preferenze, ma considera solo le creature che hanno le zampe (where has_legs = 'YES'). Restituisci creature_name, preference e il loro group_number (1, 2 o 3). Ordina i risultati in ordine crescente in base a preference.
Provalo tu
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Altre parole chiave
La parola chiave INLa parola chiave BETWEENLa parola chiave LIKELa parola chiave ASRiepilogo - Modelli di telefoni cellulari2Condizioni
Basi delle condizioniLa parola chiave ANDLa parola chiave ORLa parola chiave NOTCombinare più condizioniParentesiValori booleani5Operazioni aritmetiche
Operatori matematiciColonne matematicheL’operazione moduloLa funzione ROUND()3Formato di restituzione specifico
Valori nullOrdinare i risultati Parte 1Ordinare i risultati Parte 2Riepilogo - Azienda di sicurezza informaticaLimitare il numero di recordRiepilogo - Fabbrica di veicoli6Sfide introduttive
Ripasso - Elezione parlamentareRipasso - Arresto di un criminale da parte della poliziaRipasso - Contenitore per bevande da barRipasso - Progetta nuove colonne9Tabelle multiple
JOIN di base, parte 1JOIN di base, parte 2Riepilogo - JOINSelf joinRiepilogo - Self joinUNIONSemplificare le query, parola chiave WITHRiepilogo - Query con WITHRiepilogo - Impresa edile immobiliare12Funzioni finestra, parte 2
Funzioni RANK e DENSE_RANKRipasso: RANK e DENSE_RANKFunzione NTILEFunzioni di aggregazioneCriteri ROWS e RANGEEsercitati da solo: Playground SQL