Menu
Coddy logo textTech

Funzione ROW_NUMBER

Fa parte della sezione Fondamenti del percorso SQL di Coddy. Lezione 57 di 72.

Le funzioni finestra eseguono calcoli su un insieme di righe della tabella correlate alla riga corrente. A differenza delle normali funzioni di aggregazione, le funzioni finestra non condensano i risultati in un'unica riga.

Sono particolarmente utili quando devi:

  • Calcolare i totali progressivi
  • Classificare gli elementi all'interno dei gruppi
  • Confrontare le righe correnti con quelle precedenti o successive
  • Analizzare le tendenze nel corso dei periodi di tempo

Ad esempio, ecco alcuni casi d’uso reali delle funzioni finestra:

  • Analisi delle vendite
    • Calcola le vendite cumulative fino a ciascun anno (1995, 1997, 1999)
    • Trova i prodotti più venduti per ogni trimestre
  • Statistiche sportive
    • Tieni traccia del numero di medaglie olimpiche nei diversi anni
    • Individua gli atleti di punta in ciascun periodo di gara (2000, 2004, 2008)

ROW_NUMBER() è una delle funzioni finestra più semplici. Assegna un numero sequenziale univoco a ogni riga nel set di risultati. Ecco come usarla:

SELECT column1, column2,
       ROW_NUMBER() OVER ([PARTITION BY column] [ORDER BY column]) as row_num
FROM table_name;

È obbligatorio usare la clausola OVER con ROW_NUMBER() : ROW_NUMBER() OVER ()

Ad esempio:

SELECT product_name, sale_date,
       ROW_NUMBER() OVER () as row_num
FROM sales;

Questo aggiunge una colonna row_num che conta da 1 al numero totale di righe.

Nota: la clausola OVER può contenere istruzioni di ordinamento e partizionamento per controllare il funzionamento della numerazione.

challenge icon

Sfida

Facile

Tabelle e colonne disponibili:

  • liquids: id, density

Recupera tutti i liquidi con una densità superiore a 5.677.

Numera il risultato (usa la funzione ROW_NUMBER()) e chiama questa colonna row_num

Provalo tu

-- Numera ogni riga del risultato filtrato usando una funzione finestra
SELECT id, density, ____ as row_num
FROM liquids
WHERE density > ____
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground SQL