Ottenere il primo e l'ultimo valore
Le funzioni analitiche che restituiscono il primo o l’ultimo valore da un elenco ordinato sono molto utili nelle query. In questo esercizio imparerai a usarle. La sintassi è:
FIRST_VALUE(numeric_expression) OVER ([PARTITION BY column] ORDER BY column ROW_or_RANGE frame)LAST_VALUE(numeric_expression) OVER ([PARTITION BY column] ORDER BY column ROW_or_RANGE frame)
Scriverai una query per recuperare tutti gli elettori di Spain e USA. Poi aggiungerai alla query alcuni comandi per ottenere la data di nascita dell’elettore più giovane e di quello più anziano per ciascun paese. Vuoi vedere questi valori su ogni riga, così da poterli confrontare con la data di nascita di ogni elettore.
Questo esercizio fa parte del corso
Funzioni per manipolare i dati in SQL Server
Istruzioni dell'esercizio
- Recupera la data di nascita dell’elettore più anziano per ciascun paese.
- Recupera la data di nascita dell’elettore più giovane per ciascun paese.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
SELECT
first_name + ' ' + last_name AS name,
country,
birthdate,
-- Retrieve the birthdate of the oldest voter per country
___(birthdate)
OVER (PARTITION BY ___ ORDER BY ___) AS oldest_voter,
-- Retrieve the birthdate of the youngest voter per country
___(___)
OVER (___ country ORDER BY ___ ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS youngest_voter
FROM voters
WHERE country IN ('Spain', 'USA');