Menu
Coddy logo textTech

Funzioni LEAD e LAG

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

Le funzioni LEAD e LAG ci consentono di accedere al valore della riga corrente spostandoci indietro di n passaggi o avanti di n passaggi.

Ad esempio, se vogliamo calcolare il rapporto tra i ricavi di un'azienda nella riga corrente e quelli di un mese prima, possiamo estrarre il valore del mese precedente:

idrevenuemonth
15325
24926
33937
47238
SELECT id, revenue, LAG(revenue, 1) OVER (ORDER BY MONTH) as prev_month_revenue
FROM table1 ORDER BY id

Questo creerà la seguente tabella:

idrevenueprev_month_revenue
1532 
2492532
3393492
4723393

In questo modo possiamo calcolare il rapporto prev_month_revenue/revenue.

Se invece usassimo la funzione LEAD, otterremmo il ricavo del mese successivo per ogni riga:

SELECT id, revenue, LEAD(revenue, 1) OVER (ORDER BY MONTH) as next_month_revenue
FROM table1 ORDER BY id
idrevenuenext_month_revenue
1532492
2492393
3393723
4723 
challenge icon

Sfida

Facile

Tabelle e colonne disponibili:

  • air_conditioners: id, efficiency, strength, month

Confronta l'efficienza di ciascun condizionatore d'aria con quella del precedente.

Scrivi una query che mostri l'efficienza di ciascun condizionatore d'aria insieme a quella del condizionatore d'aria installato in precedenza (in base a id). Inoltre, calcola la differenza di efficienza tra il condizionatore d'aria corrente e quello precedente. Ordina il risultato in ordine crescente per id e efficiency.

Colonne previste nell'output:

  • id
  • efficiency
  • previous_efficiency (usando LAG)
  • efficiency_difference (efficienza corrente - efficienza precedente)

Infine, racchiudi la query e filtra la prima riga, il cui previous_efficiency (e quindi efficiency_difference) è vuoto, ovvero NULL:

SELECT * FROM (
    -- Your query here
)
WHERE previous_efficiency IS NOT NULL

Provalo tu

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