Lấy giá trị đầu tiên và cuối cùng
Các hàm phân tích trả về giá trị đầu tiên hoặc cuối cùng từ một danh sách có sắp xếp rất hữu ích trong truy vấn. Trong bài tập này, bạn sẽ làm quen với chúng. Cú pháp là:
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)
Bạn sẽ viết một truy vấn để lấy tất cả cử tri từ Spain và USA. Sau đó, bạn sẽ thêm vào truy vấn một số câu lệnh để lấy ngày sinh của cử tri trẻ nhất và lớn tuổi nhất ở mỗi quốc gia. Bạn muốn hiển thị các giá trị này trên từng hàng để có thể so sánh với ngày sinh của từng cử tri.
Bài tập này là một phần của khóa học
Các hàm thao tác dữ liệu trong SQL Server
Hướng dẫn bài tập
- Lấy ngày sinh của cử tri lớn tuổi nhất ở mỗi quốc gia.
- Lấy ngày sinh của cử tri trẻ nhất ở mỗi quốc gia.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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');