Hämta det första och sista värdet
De analytiska funktioner som returnerar det första eller sista värdet från en sorterad lista är mycket användbara i frågor. I den här övningen får du bekanta dig med dem. Syntaxen är:
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)
Du ska skriva en fråga som hämtar alla väljare från Spanien och USA. Sedan lägger du till kommandon i frågan för att hämta födelsedatumet för den yngsta och den äldsta väljaren från varje land. Du vill se dessa värden på varje rad för att kunna jämföra dem med varje väljares födelsedatum.
Den här övningen är en del av kursen
Funktioner för datamanipulering i SQL Server
Övningsinstruktioner
- Hämta födelsedatumet för den äldsta väljaren från varje land.
- Hämta födelsedatumet för den yngsta väljaren från varje land.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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');