Tìm hiểu thêm về chương trình đào tạo “Khoa học dữ liệu trong Kinh tế và Kinh doanh” của đại học Ngoại thương tại đây
tổng quan chương trình
Mục lục
Giới thiệu về Windows Functions trong SQL
Windows functions trong SQL được sử dụng để thực hiện các phép tính các dòng có liên quan đến dòng hiện tại. Khác với Aggregate Functions tính toán tất cả các hàng, Windows Functions được sử dụng để tính toán theo từng hàng. Một Windows Function được định nghĩa khi có mệnh đề OVER() đi kèm sau lệnh gọi hàm.
- Cú pháp của Windows Functions:
Windows Functions () OVER ( [PARTITION BY partition_expression, ... ] ORDER BY sort_expression [ASC | DESC], ...)
- Trong đó:
- Có 3 loại Windows Functions:
Function Name | Miêu tả | ||
Aggregate Functions | AVG() | Trả về giá trị trung bình | |
COUNT() | Đếm các giá trị | ||
MAX() | Trả về giá trị lớn nhất | ||
MIN() | Trả về giá trị nhỏ nhất | ||
SUM() | Tính tổng các giá trị | ||
Ranking Functions | RANK() | Xếp hạng các giá trị theo thứ tự tăng dần nhưng sẽ trả về thứ hạng giống nhau với các giá trị giống nhau và bỏ qua thứ hạng đóVí dụ: rank(): 1,1,3,4,5 | |
DENSE_RANK() | Xếp hạng các giá trị theo thứ tự tăng dần nhưng sẽ trả về thứ hạng giống nhau với các giá trị giống nhau và không bỏ qua thứ hạng đóVí dụ: dense_rank (): 1,1,2,3,4 | ||
ROW_NUMBER() | Xếp hạng các giá trị trong từng partition theo thứ tự tăng dần mà không quan tâm đến giá trị giống nhauVí dụ: row_number (): 1,2,3,4,5 | ||
CUME_DIST() | Tinh tỷ lệ các giá trị nhỏ hơn hoặc bằng giá trị hiện tại | ||
PERCENT_RANK() | (rank -1)/ (row-1)Trong đó:+ rank là thứ tự của giá trị đó theo thứ tự tăng dần (các giá trị giống nhau trả về thứ hạng giống nhau)+ row: tổng số dòng (xét trong 1 partition) | ||
Analytic Functions | FIRST_VALUE (expression) | Lấy giá trị đầu trong từng partition | |
LAST_VALUE (expression) | Lấy giá trị cuối trong từng partition | ||
LAG (expression, offset) | Sắp xếp các giá trị theo thứ tự tăng dần và trả về các giá trị không bị bỏ quaTrong đó: offset: số giá trị bỏ qua tính từ trên xuống (Nếu tham số này bị bỏ qua, mặc định là 1) | ||
LEAD (expression, offset) | Sắp xếp các giá trị theo thứ tự giảm dần và trả về các giá trị không bị bỏ quaTrong đó: offset: số giá trị bỏ qua tính từ trên xuống (Nếu tham số này bị bỏ qua, mặc định là 1) | ||
- Ví dụ

Ảnh: Câu lệnh và kết quả trả về trên SQL