De eerste en laatste waarde ophalen
De analytische functies die de eerste of laatste waarde uit een geordende lijst retourneren, zijn erg handig in queries. In deze oefening maak je er kennis mee. De syntaxis is:
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)
Je schrijft een query om alle kiezers uit Spain en de USA op te halen. Daarna voeg je aan je query opdrachten toe om de geboortedatum van de jongste en de oudste kiezer per land op te halen. Je wilt deze waarden in elke rij zien, zodat je ze kunt vergelijken met de geboortedatum van elke kiezer.
Deze oefening maakt deel uit van de cursus
Functies voor het bewerken van data in SQL Server
Oefeninstructies
- Haal de geboortedatum op van de oudste kiezer per land.
- Haal de geboortedatum op van de jongste kiezer per land.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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');