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 BY
perché 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
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 BY
perché 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!
Awesome!
Completion rate improved to 4.35single