Tiếp tục seri về các Window Functions trong SQL, trong bài viết này SmartData sẽ chia sẻ về các hàm trong nhóm Analytic Function. Các hàm thường được sử dụng trong nhóm này là lag(), lead(),..Hãy cùng SmartData đi vào chi tiết chức năng và cách dùng của từng hàm.
Vẫn với dataset sử dụng ở bài trước, ta sẽ dùng với các hàm sau đây
Hàm lag trong Window function
Cú pháp đầy đủ:
LAG(expr [, N[, default]])
Hàm trả về giá trị của hàng trước kể từ row hiện tại, nếu không tồn tại hàng đó thì trả về giá trị default. Trường hợp để trống N & default thì mặc định N = 1 và default = NULL.
Ví dụ:
SQL> SELECT *, LAG(sale_price) over(PARTITION by category) as lag_ from sample
Kết quả:
Ta sẽ thấy nhóm theo category thì hàm lag sẽ giá về giá trị cột được chỉ định của row ngay trên nó
Hàm lead trong Window function
Cú pháp đầy đủ:
LEAD(expr [, N[, default]])
Hàm trả về giá trị của hàng sau kể từ row hiện tại, nếu không tồn tại hàng đó thì trả về giá trị default. Trường hợp để trống N & default thì mặc định N = 1 và default = NULL.
Ví dụ:
SQL> SELECT *, lead(sale_price) over(PARTITION by category) as lead_ from sample
Kết quả:
Ta sẽ thấy nhóm theo category thì hàm lead sẽ giá về giá trị cột được chỉ định của row ngay dưới nó
Hàm first_value trong Window function
Cú pháp đầy đủ:
FIRST_VALUE(expr)
Hàm trả về giá trị đầu tiên theo nhóm partition chỉ định.
Ví dụ:
SQL> SELECT *, FIRST_VALUE(sale_price) over(PARTITION by category) as first_value_category from sample
Kết quả:
Ta thấy hàm first_value trả về giá trị đầu tiên của của từng nhóm bởi trường category
Hàm last_value trong Window function
Cú pháp đầy đủ:
LAST_VALUE(expr)
Hàm trả về giá trị đầu tiên theo nhóm partition chỉ định.
Ví dụ:
SQL> SELECT *, LAST_VALUE(sale_price) over(PARTITION by category) as last_value_category from sample
Kết quả:
Ta thấy hàm last_value trả về giá trị đầu tiên của của từng nhóm bởi trường category
Kết luận
Các nhóm thuộc nhóm Analytic Function được sử dụng rất tốt trường các trường hợp muốn so sánh, tính độ lệch dữ liệu. Phục vụ việc tính toán phân tích dữ liệu
Nếu bạn là newbie có thể tham khảo bài viết này để tìm hiểu lộ trình học DA trong 3 tháng của SmartData
Nếu bạn thấy bài viết hay và hữu ích, bạn có thể tham gia các kênh sau của SmartData để nhận được nhiều hơn nữa: