40 hàm cửa sổ SQL nâng cao mọi nhà khoa học dữ liệu cần biết (kèm ví dụ)
Trong lĩnh vực khoa học dữ liệu, SQL vẫn là công cụ mạnh mẽ để định nghĩa dữ liệu, thao tác dữ liệu, tổng hợp dữ liệu và phân tích dữ liệu. Các lệnh SQL cơ bản rất nền tảng và ai cũng biết. Nếu muốn trở nên nổi bật, bạn nên nắm vững các tính năng nâng cao như hàm cửa sổ (window functions) mà [...] Bài viết 40 Advanced SQL Window Functions Every Data Scientist Must Know (with examples) xuất hiện lần đầu trên Analytics Vidhya.
40 Hàm Cửa sổ SQL Nâng cao: Hướng dẫn đầy đủ
Hội nghị AI mang tính tương lai nhất của Ấn Độ đã trở lại – Lớn hơn, Sắc nét hơn, Táo bạo hơn
d : h : m : s
Nhận thông tin chi tiết
Các khóa học miễn phí
Các khóa học miễn phí
Lộ trình học tập
Chương trình tăng tốc
Chương trình tăng tốc
Mới
Chương trình GenAI Pinnacle
GenAI Pinnacle Plus
Người tiên phong AI tác nhân
Mới
DeepSeek
Hội nghị thượng đỉnh DataHack 2025
DHS 2026
Các khóa học miễn phí
Đăng nhập
Chuyển chế độ
Đăng xuất
Chuẩn bị phỏng vấn
Sự nghiệp
GenAI
Kỹ thuật nhắc lệnh
ChatGPT
LLM
Langchain
RAG
AI Agents
Học máy
Học sâu
Công cụ GenAI
LLMOps
Python
NLP
SQL
Dự án AIML
Danh sách đọc
Lộ trình học tập của nhà phân tích dữ liệu
Cách trở thành nhà phân tích dữ liệu vào năm 2025: Lộ trình hoàn chỉnh
Lộ trình học tập Tableau
Lộ trình học tập toàn diện về Tableau vào năm 2025
Lộ trình học tập NLP
Lộ trình học tập NLP toàn diện 2025
Lộ trình học tập của nhà khoa học dữ liệu
Lộ trình học tập để trở thành nhà khoa học dữ liệu vào năm 2025
Lộ trình học tập của kỹ sư dữ liệu
Lộ trình từng bước để trở thành kỹ sư dữ liệu vào năm 2025
Lộ trình học tập MLOps
Lộ trình học tập MLOps toàn diện: Phiên bản 2025
Lộ trình học tập của kỹ sư AI
Lộ trình để trở thành kỹ sư AI vào năm 2025
Lộ trình học tập thị giác máy tính
Lộ trình học tập toàn diện để thành thạo thị giác máy tính vào năm 2025
Lộ trình học tập AI tạo sinh
Lộ trình tốt nhất để học AI tạo sinh vào năm 2025
Lộ trình AI tạo sinh cho doanh nghiệp
Lộ trình GenAI cho doanh nghiệp
Lộ trình LLM
Các mô hình ngôn ngữ lớn được giải mã: Lộ trình dành cho người mới bắt đầu
Lộ trình kỹ sư nhắc lệnh
Lộ trình học tập để trở thành chuyên gia kỹ thuật nhắc lệnh
Trang chủ
SQL
40 Hàm cửa sổ SQL nâng cao mà mọi nhà khoa học dữ liệu phải biết (kèm ví dụ)
40 Hàm cửa sổ SQL nâng cao mà mọi nhà khoa học dữ liệu phải biết (kèm ví dụ)
Harshit Ahluwalia
Cập nhật lần cuối: 19/5/2026
13 phút đọc
Trong thế giới khoa học dữ liệu, SQL vẫn là công cụ mạnh mẽ để định nghĩa dữ liệu, thao tác dữ liệu, tổng hợp dữ liệu và phân tích dữ liệu.
Mặc dù các lệnh SQL cơ bản rất nền tảng và mọi người đều biết về chúng, nhưng nếu muốn trở nên độc đáo trong đám đông, bạn nên biết các tính năng nâng cao như hàm cửa sổ có thể mở khóa nhiều khả năng cho các phép biến đổi và hiểu biết sâu sắc về dữ liệu phức tạp. Trong bài viết này, bạn sẽ tìm hiểu về các hàm cửa sổ SQL nâng cao mà bạn nên biết và cách sử dụng chúng trong dự án của mình.
Mục lục
Sự khác biệt giữa hàm cửa sổ và hàm tổng hợp thông thường
Mệnh đề OVER() kỳ diệu: Định nghĩa cửa sổ của bạn
Hiểu về khung cửa sổ: ROWS so với RANGE so với GROUPS
Các hàm xếp hạng và đánh số thiết yếu
Các hàm điều hướng và vị trí
Các hàm thống kê và hồi quy nâng cao
Các hàm phân phối và xác suất
Các hàm tổng hợp dưới dạng cửa sổ
Các hàm phân tích chuyên biệt và dành riêng cho nền tảng
Hiểu thứ tự thực thi của SQL: Khi nào các hàm cửa sổ chạy?
Kết luận
Các câu hỏi thường gặp
Sự khác biệt giữa hàm cửa sổ và hàm tổng hợp thông thường
Các hàm tổng hợp thông thường (SUM(), AVG(), COUNT() không có OVER()): Các hàm này tổng hợp các hàng thành một bản tóm tắt. Chúng nhận một nhóm các hàng và trả về một hàng tóm tắt duy nhất. Ví dụ: "SELECT SUM(sales) FROM orders" sẽ cung cấp tổng số lượng bán hàng.
Các hàm cửa sổ (SUM(), AVG(), COUNT() với OVER()): Các hàm này cũng thực hiện tính toán trên nhóm các hàng, nhưng chúng trả về kết quả cho mỗi hàng trong dữ liệu gốc của bạn. Điều này có nghĩa là bạn có thể thấy tổng doanh số trong ngày bên cạnh từng giao dịch bán hàng riêng lẻ diễn ra trong ngày đó.
Mệnh đề OVER() kỳ diệu: Xác định cửa sổ của bạn
Mệnh đề OVER() là cốt lõi của mọi hàm cửa sổ. Nó cho SQL biết chính xác những hàng nào sẽ được đưa vào cửa sổ của bạn để tính toán. Bên trong OVER(), bạn có thể sử dụng một vài từ khóa quan trọng:
PARTITION BY: Điều này giống như nói "Nhóm dữ liệu của tôi theo cột này". Ví dụ: PARTITION BY customer_id có nghĩa là hàm cửa sổ sẽ khởi động lại tính toán của nó cho mỗi khách hàng mới.
ORDER BY: Điều này cho SQL biết cách sắp xếp các hàng trong mỗi nhóm (hoặc toàn bộ tập dữ liệu nếu không có PARTITION BY). Điều này cực kỳ quan trọng đối với các hàm quan tâm đến trình tự, như tìm mục đầu tiên hoặc mục tiếp theo.
Hiểu về khung cửa sổ: ROWS so với RANGE so với GROUPS
Khung cửa sổ chỉ định tập hợp con các hàng trong phân vùng hiện tại mà hàm cửa sổ sẽ hoạt động. Chúng được định nghĩa tương đối với hàng hiện tại và rất quan trọng cho các phép tính như trung bình động hoặc tổng tích lũy.
ROWS: Định nghĩa khung dựa trên một số hàng cố định đứng trước hoặc đứng sau hàng hiện tại. Ví dụ: ROWS BETWEEN 2 PRECEDING AND CURRENT ROW bao gồm hàng hiện tại và hai hàng đứng trước.
RANGE: Định nghĩa khung dựa trên một độ lệch logic từ giá trị của hàng hiện tại trong mệnh đề ORDER BY. Ví dụ: RANGE BETWEEN 100 PRECEDING AND CURRENT ROW sẽ bao gồm tất cả các hàng có giá trị ORDER BY nằm trong phạm vi 100 đơn vị so với giá trị của hàng hiện tại.
GROUPS: (Ít phổ biến hơn, nhưng có sẵn trong một số phương ngữ SQL nâng cao như Oracle) Định nghĩa khung dựa trên một nhóm hàng logic, tương tự như RANGE nhưng thường được sử dụng với logic nhóm phức tạp hơn.
Các hàm xếp hạng và đánh số thiết yếu
Các hàm này rất tốt để sắp xếp dữ liệu của bạn và gán thứ hạng hoặc số trong các nhóm. Chúng giúp bạn nhanh chóng tìm thấy mục tốt nhất, tệ nhất hoặc đơn giản là đếm các mục trong một chuỗi.
ROW_NUMBER(): Gán cho mỗi hàng một số duy nhất
ROW_NUMBER() gán một số duy nhất, tuần tự (bắt đầu từ 1) cho mỗi hàng trong nhóm. Nó hoàn hảo khi bạn cần một



Nguồn tin: Analytics Vidhya — Tác giả: Harshit Ahluwalia. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.