Truy cập giá trị từ hàng kế tiếp
Với hàm LEAD(), bạn có thể truy cập dữ liệu từ hàng tiếp theo trong cùng truy vấn mà không cần dùng câu lệnh GROUP BY. Cách này giúp bạn dễ dàng so sánh các giá trị trong một danh sách đã sắp xếp.
Cú pháp:
LEAD(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
Trong bài tập này, bạn sẽ làm quen với việc so sánh giá trị của hàng hiện tại với hàng liền sau.
Bạn sẽ chọn thông tin về các cử tri từ France và sắp xếp kết quả theo tổng số phiếu bầu tăng dần. Mục tiêu là phân tích xem số phiếu của mỗi cử tri so với số phiếu của người kế tiếp trong danh sách như thế nào.
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
- Tạo một cột mới hiển thị số phiếu bầu của người kế tiếp trong danh sách.
- Tạo một cột mới là hiệu giữa
total_votescủa cử tri hiện tại và số phiếu của người kế tiếp.
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,
total_votes AS votes,
-- Select the number of votes of the next voter
___(___) OVER (___ total_votes) AS votes_next_voter,
-- Calculate the difference between the number of votes
LEAD(___) ___ (ORDER BY ___) - total_votes AS votes_diff
FROM voters
WHERE country = 'France'
ORDER BY total_votes;