Sfida: Utilizzo delle Funzioni Finestra
Consideriamo la tabella bank_accounts che abbiamo utilizzato nelle sezioni precedenti:
Supponiamo di voler aggiungere informazioni alla tabella riguardo a quale classe appartiene ciascun utente in base al saldo del proprio conto.
Le classi saranno determinate come segue:
- Una persona il cui saldo è nel
25%inferiore apparterrà alla quarta classe; - Una persona il cui saldo è compreso tra il
25%e il50%apparterrà alla terza classe; - Una persona il cui saldo è compreso tra il
50%e il75%apparterrà alla seconda classe; - Una persona il cui saldo è nel
25%superiore apparterrà alla prima classe.
Per risolvere questo problema, possiamo utilizzare una funzione finestra chiamata NTILE().
La funzione NTILE() è una funzione finestra che suddivide le righe in una partizione ordinata in un numero specificato di gruppi di dimensioni approssimativamente uguali, o "tiles".
Assegna a ciascuna riga un numero di gruppo, a partire da 1, in base al gruppo di appartenenza.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
Nota
Nell'esempio, non è necessario specificare una clausola
PARTITION BYperché vogliamo applicare la funzioneNTILE()all'intero risultato, non a specifici sottoinsiemi o partizioni dei dati.
La clausolaORDER BYè sufficiente poiché definisce l'ordine in cui le righe vengono distribuite nei tiles, garantendo che il raggruppamento sia basato sull'ordine dei salari in tutta la tabella.
Se volessimo calcolare i tiles all'interno di gruppi specifici (ad esempio, dipartimenti), useremmoPARTITION BY.
Swipe to start coding
Il tuo compito è applicare la funzione NTILE() per ottenere informazioni sulla classe di ciascun titolare di conto.
Devi:
- Specificare il numero di classi come argomento della funzione.
- Fornire un ordinamento in base al saldo del conto per determinare la classe.
- Poiché si presume che la prima classe sia quella con il saldo più alto e così via, è necessario ordinare i saldi in ordine decrescente.
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
How do I write a query to assign classes using NTILE() for this table?
Can you explain how NTILE() works with an example using these balances?
What would the result look like after adding the class column?
Awesome!
Completion rate improved to 4.35
Sfida: Utilizzo delle Funzioni Finestra
Scorri per mostrare il menu
Consideriamo la tabella bank_accounts che abbiamo utilizzato nelle sezioni precedenti:
Supponiamo di voler aggiungere informazioni alla tabella riguardo a quale classe appartiene ciascun utente in base al saldo del proprio conto.
Le classi saranno determinate come segue:
- Una persona il cui saldo è nel
25%inferiore apparterrà alla quarta classe; - Una persona il cui saldo è compreso tra il
25%e il50%apparterrà alla terza classe; - Una persona il cui saldo è compreso tra il
50%e il75%apparterrà alla seconda classe; - Una persona il cui saldo è nel
25%superiore apparterrà alla prima classe.
Per risolvere questo problema, possiamo utilizzare una funzione finestra chiamata NTILE().
La funzione NTILE() è una funzione finestra che suddivide le righe in una partizione ordinata in un numero specificato di gruppi di dimensioni approssimativamente uguali, o "tiles".
Assegna a ciascuna riga un numero di gruppo, a partire da 1, in base al gruppo di appartenenza.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
Nota
Nell'esempio, non è necessario specificare una clausola
PARTITION BYperché vogliamo applicare la funzioneNTILE()all'intero risultato, non a specifici sottoinsiemi o partizioni dei dati.
La clausolaORDER BYè sufficiente poiché definisce l'ordine in cui le righe vengono distribuite nei tiles, garantendo che il raggruppamento sia basato sull'ordine dei salari in tutta la tabella.
Se volessimo calcolare i tiles all'interno di gruppi specifici (ad esempio, dipartimenti), useremmoPARTITION BY.
Swipe to start coding
Il tuo compito è applicare la funzione NTILE() per ottenere informazioni sulla classe di ciascun titolare di conto.
Devi:
- Specificare il numero di classi come argomento della funzione.
- Fornire un ordinamento in base al saldo del conto per determinare la classe.
- Poiché si presume che la prima classe sia quella con il saldo più alto e così via, è necessario ordinare i saldi in ordine decrescente.
Soluzione
Grazie per i tuoi commenti!
single