Criterio PARTITION BY
Fa parte della sezione Fondamenti del percorso SQL di Coddy. Lezione 59 di 72.
Un'altra opzione per la clausola OVER () è PARTITION BY
Ci consente di numerare separatamente le righe di ogni gruppo
Per esempio:
| id | type |
| 132 | t1 |
| 52 | t2 |
| 92 | t1 |
| 154 | t3 |
| 198 | t1 |
SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type ORDER BY id) as row_num
FROM table1Questo genererà una colonna che numera separatamente le righe di ciascun tipo, in ordine di id (il risultato qui sotto è raggruppato per tipo):
| id | type | row_num |
| 92 | t1 | 1 |
| 132 | t1 | 2 |
| 198 | t1 | 3 |
| 52 | t2 | 1 |
| 154 | t3 | 1 |
id 92 ha row_num 1 perché è il più piccolo id in type t1.
Nota: ROW_NUMBER() richiede una clausola ORDER BY all'interno di OVER() per determinare come numerare le righe all'interno di ogni partizione.
Possiamo persino specificare più colonne all'interno di PARTITION BY:
ROW_NUMBER() OVER (PARTITION BY type, hue ORDER BY id)Sfida
FacileTabelle e colonne disponibili:
doors:id,publication_yeardoors_specs:id,country,color
Una fabbrica sta costruendo porte. Deve numerare le porte per ogni combinazione di country e color che abbia un publication_year inferiore a 2000. Chiama questa colonna row_num.
Le porte devono essere numerate all'interno di ciascun gruppo in ordine crescente in base al loro id. Le porte senza specifiche devono essere ignorate. Ordina il risultato finale in ordine crescente in base all'id.
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()8Statistica
Funzioni aggregate integrate - Parte 1Funzioni aggregate integrate - Parte 2Raggruppamento - Parte 1Raggruppamento - Parte 2Sottoquery - Parte 1Sottoquery - Parte 2Riepilogo - Negozio Total GainRiepilogo - Negozio di scooterRiepilogo - Caffetteria11Funzioni finestra, parte 1
Funzione ROW_NUMBERCriterio ORDER BYCriterio PARTITION BYPARTITION e ORDERFunzioni LEAD e LAGRipasso - LEAD e LAGRipasso - ImmaginiRipasso - Scatole3Formato 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