Funzioni LEAD e LAG
Lezione 6 di 13 del corso SQL avanzato di Coddy.
Le funzioni Lead e Lag ci permettono di ottenere il valore della riga corrente spostandoci indietro di n passaggi o avanti di n passaggi
Ad esempio, se vogliamo calcolare il rapporto di un'azienda per la riga corrente e quella di un mese fa, estraiamo il valore di due mesi fa:
| id | revenue | month |
| 1 | 532 | 5 |
| 2 | 492 | 6 |
| 3 | 393 | 7 |
| 4 | 723 | 8 |
SELECT id, revenue, LAG(month, 1) OVER (ORDER BY MONTH) as prev_month_revenue
FROM table1 ORDER BY idQuesto creerà la tabella seguente:
| id | revenue | prev_month_revenue |
| 1 | 532 | |
| 2 | 492 | 532 |
| 3 | 393 | 492 |
| 4 | 723 | 723 |
In questo modo possiamo calcolare il rapporto prev_month_revenue/revenue.
Se invece usassimo la funzione LEAD, verrebbe preso il mese successivo per ogni riga:
| id | revenue | next_month_revenue |
| 1 | 532 | 492 |
| 2 | 492 | 393 |
| 3 | 393 | 723 |
| 4 | 723 |
Sfida
FacileI condizionatori possono diventare molto costosi. Col passare del tempo, sono diventati più efficienti e potenti, ma l’importanza di questi miglioramenti non si nota giorno per giorno. Dobbiamo allargare lo sguardo per vedere i miglioramenti nel tempo.
Per farlo, calcola la media di efficiency e strength dei condizionatori per ogni id e month. Poi recupera il rapporto tra efficiency e strength per il mese corrente e per quello di due mesi prima. Infine, calcola il rapporto tra il rapporto del mese corrente e il rapporto di due mesi prima. Restituisci i risultati in cui il rapporto è maggiore di 1.5. Chiama questa colonna ratio_two_months.
Provalo tu
Tutte le lezioni di SQL avanzato
4Riepilogo
Sfida finale #12Funzioni finestra parte 1
Funzione ROW_NUMBERCriterio ORDER BYCriterio PARTITION BYFunzioni LEAD e LAGSfida di ripasso #1Sfida di ripasso #23Funzioni finestra, parte 2
Funzioni RANK e DENSE_RANKFunzione NTILEFunzioni di aggregazioneCriterio ROWS e RANGEEsercitati da solo: Compilatore Python online