Accedere ai valori dalla riga precedente
Usando la funzione LAG() in una query, puoi accedere alle righe precedenti a quella corrente.
Questa è la sintassi:
LAG(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
In questo esercizio userai questa funzione nella tua query. Analizzerai i punteggi delle barrette di cioccolato prodotte da un'azienda chiamata "Fruition".
Questa azienda produce cioccolato con cacao proveniente da diverse aree del mondo.
Vuoi verificare se esiste una correlazione tra la percentuale di cacao e il punteggio ricevuto, per le barrette provenienti dalla stessa località. Per farlo, confronterai la percentuale di cacao di ogni barretta con la percentuale della barretta che ha ricevuto il punteggio immediatamente precedente. Poi calcolerai la differenza tra questi valori e interpreterai i risultati.
Questo esercizio fa parte del corso
Funzioni per manipolare i dati in SQL Server
Istruzioni dell'esercizio
- Crea una nuova colonna che mostri la percentuale di cacao della barretta di cioccolato che ha ricevuto un punteggio più basso, con cacao proveniente dalla stessa località (
broad_bean_originè lo stesso). - Crea una nuova colonna con la differenza tra la percentuale di cacao della barretta corrente e la percentuale della barretta precedente.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
SELECT
broad_bean_origin AS bean_origin,
rating,
cocoa_percent,
-- Retrieve the cocoa % of the bar with the previous rating
___(___)
OVER(___ broad_bean_origin ORDER BY ___) AS percent_lower_rating
FROM ratings
WHERE company = 'Fruition'
ORDER BY broad_bean_origin, rating ASC;