Menu
CoddyTech

Hàm LEAD và LAG

Bài học 6 trên 13 trong khóa học SQL nâng cao của Coddy.

Các hàm Lead và Lag cho phép chúng ta lấy giá trị của hàng hiện tại, lùi lại n bước hoặc tiến lên n bước

Ví dụ: nếu muốn tính tỷ lệ giữa doanh thu của công ty ở hàng hiện tại và một tháng trước đó, ta lấy giá trị của hai tháng trước:

idrevenuemonth
15325
24926
33937
47238
SELECT id, revenue, LAG(month, 1) OVER (ORDER BY MONTH) as prev_month_revenue
FROM table1 ORDER BY id

Lệnh này sẽ tạo bảng sau:

idrevenueprev_month_revenue
1532 
2492532
3393492
4723723

Bằng cách này, ta có thể tính tỷ lệ prev_month_revenue/revenue.

Nếu thay vào đó ta dùng hàm LEAD, hàm sẽ lấy doanh thu của tháng tiếp theo cho từng hàng:

idrevenuenext_month_revenue
1532492
2492393
3393723
4723 
challenge icon

Thử thách

Dễ

Máy điều hòa có thể rất đắt. Theo thời gian, chúng trở nên hiệu quả hơn và mạnh hơn, nhưng chúng ta không thể nhận thấy rõ những cải tiến này qua từng ngày. Ta cần nhìn rộng hơn để thấy những cải tiến theo thời gian.

Để làm điều này, hãy tính giá trị trung bình của efficiency và strength của máy điều hòa theo từng id và month. Sau đó, lấy tỷ lệ giữa efficiency và strength của tháng hiện tại và hai tháng trước đó. Cuối cùng, tính tỷ lệ giữa tỷ lệ của tháng hiện tại và tỷ lệ của hai tháng trước đó. Trả về kết quả có tỷ lệ lớn hơn 1.5. Đặt tên cột này là ratio_two_months.

Tự làm thử

Tất cả bài học trong SQL nâng cao

Tự luyện tập: Trình biên dịch Python online