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
Ottimizzazione SQL e Funzionalità delle Query

bookSfida: Utilizzo delle Funzioni Finestra

Supponiamo di voler aggiungere informazioni alla tabella su a quale classe appartiene ciascun utente in base al saldo del loro conto.

Le classi saranno determinate come segue:

  • Una persona il cui saldo è nel 25% inferiore apparterrà alla quarta classe;
  • Una persona il cui saldo è tra il 25% e il 50% apparterrà alla terza classe;
  • Una persona il cui saldo è 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 in cui ricade.

NTILE(num_buckets) OVER (
    ORDER BY sort_column
)
Note
Nota

Nell'esempio, non è necessario specificare una clausola PARTITION BY perché vogliamo applicare la funzione NTILE() all'intero set di risultati, 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 ordinati su tutta la tabella.
Se volessimo calcolare i tiles all'interno di gruppi specifici (ad esempio, reparti), useremmo PARTITION BY.

Compito

Swipe to start coding

Completa gli spazi vuoti per utilizzare la funzione NTILE() in modo che a ciascun titolare di conto venga assegnata una classe da 1 a 4, dove la classe 1 comprende i saldi più alti.

  • Utilizza 4 come numero di classi;
  • Ordina per la colonna balance in ordine decrescente;
  • Assicurati che il risultato mostri account_holder, balance e la relativa class.

Soluzione

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 4
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

Suggested prompts:

How do I use the NTILE() function to classify users into these classes?

Can you show an example SQL query that implements this classification?

What does the output table look like after adding the class information?

close

bookSfida: Utilizzo delle Funzioni Finestra

Scorri per mostrare il menu

Supponiamo di voler aggiungere informazioni alla tabella su a quale classe appartiene ciascun utente in base al saldo del loro conto.

Le classi saranno determinate come segue:

  • Una persona il cui saldo è nel 25% inferiore apparterrà alla quarta classe;
  • Una persona il cui saldo è tra il 25% e il 50% apparterrà alla terza classe;
  • Una persona il cui saldo è 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 in cui ricade.

NTILE(num_buckets) OVER (
    ORDER BY sort_column
)
Note
Nota

Nell'esempio, non è necessario specificare una clausola PARTITION BY perché vogliamo applicare la funzione NTILE() all'intero set di risultati, 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 ordinati su tutta la tabella.
Se volessimo calcolare i tiles all'interno di gruppi specifici (ad esempio, reparti), useremmo PARTITION BY.

Compito

Swipe to start coding

Completa gli spazi vuoti per utilizzare la funzione NTILE() in modo che a ciascun titolare di conto venga assegnata una classe da 1 a 4, dove la classe 1 comprende i saldi più alti.

  • Utilizza 4 come numero di classi;
  • Ordina per la colonna balance in ordine decrescente;
  • Assicurati che il risultato mostri account_holder, balance e la relativa class.

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!

Sezione 3. Capitolo 4
single

single

some-alt