Salta ai contenuti
Manuale LogoManuale Logo

Window functions

Le window functions sono funzioni molto utili quando vuoi analizzare un gruppo di righe, ma senza trasformarlo in una sola riga come fa GROUP BY.

Sono utili per classifiche, posizioni e confronti tra righe vicine.

SELECT
nome,
totale,
ROW_NUMBER() OVER (ORDER BY totale DESC) AS posizione
FROM ordini;

Questa query assegna un numero di posizione a ogni riga, ordinando i risultati per totale dal più grande al più piccolo.

Le funzioni più comuni sono:

  • ROW_NUMBER()
  • RANK()
  • DENSE_RANK()

La parte OVER (...) dice alla funzione su quale finestra di righe deve lavorare e con quale ordine.

Senza OVER, questa famiglia di funzioni non saprebbe su quale insieme ragionare.

Le window functions servono spesso per:

  • creare classifiche
  • numerare le righe
  • confrontare risultati vicini
  • aggiungere analisi senza perdere il dettaglio riga per riga

Sono funzioni avanzate, utili quando devi analizzare i dati senza perdere il dettaglio delle singole righe.