Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Sfida: Utilizzo delle Funzioni Finestra | Alcuni Argomenti Aggiuntivi
Tecniche Avanzate in SQL

bookSfida: 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 il 50% apparterrà alla terza classe;
  • Una persona il cui saldo è compreso tra il 50% e il 75% 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 funzione NTILE() all'intero risultato, non a specifici sottoinsiemi o partizioni dei dati.
La clausola ORDER 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), useremmo PARTITION BY.

Compito

Swipe to start coding

Il tuo compito è applicare la funzione NTILE() per ottenere informazioni sulla classe di ciascun titolare di conto.

Devi:

  1. Specificare il numero di classi come argomento della funzione.
  2. Fornire un ordinamento in base al saldo del conto per determinare la classe.
  3. 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

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 5
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

close

Awesome!

Completion rate improved to 4.35

bookSfida: 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 il 50% apparterrà alla terza classe;
  • Una persona il cui saldo è compreso tra il 50% e il 75% 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 funzione NTILE() all'intero risultato, non a specifici sottoinsiemi o partizioni dei dati.
La clausola ORDER 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), useremmo PARTITION BY.

Compito

Swipe to start coding

Il tuo compito è applicare la funzione NTILE() per ottenere informazioni sulla classe di ciascun titolare di conto.

Devi:

  1. Specificare il numero di classi come argomento della funzione.
  2. Fornire un ordinamento in base al saldo del conto per determinare la classe.
  3. 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

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

close

Awesome!

Completion rate improved to 4.35
Sezione 3. Capitolo 5
single

single

some-alt