Hướng dẫn xoay chiều dữ liệu bằng PIVOT trong SQL và UNPIVOT: chuyển đổi dữ liệu dòng thành cột và ngược lại để chuẩn bị bảng dữ liệu phẳng phục vụ trực quan hóa.
1. Tại sao cần sử dụng PIVOT trong SQL?
Trong cơ sở dữ liệu quan hệ, dữ liệu thường được lưu trữ dưới dạng hàng dọc (Long Format) để tối ưu lưu trữ. Tuy nhiên, khi làm báo cáo, các nhà quản lý lại ưu tiên dạng bảng ngang (Wide Format) kiểu Pivot Table trong Excel.
Kỹ thuật PIVOT trong SQL giúp bạn xoay các giá trị từ dòng thành các cột riêng biệt. Nhờ đó, báo cáo tổng hợp doanh thu theo tháng hay theo khu vực trở nên trực quan và dễ đọc hơn rất nhiều.
2. Kỹ thuật PIVOT trong SQL là gì?
PIVOT trong SQL là thao tác chuyển đổi các giá trị duy nhất của một cột thành nhiều cột mới, đồng thời thực hiện các phép toán tổng hợp (SUM, COUNT, AVG…) trên các cột còn lại.
Cú pháp chuẩn trên SQL Server:
SELECT *
FROM (
SELECT Nam, Thang, DoanhThu
FROM BanHang
) SourceTable
PIVOT (
SUM(DoanhThu)
FOR Thang IN ([Thang1], [Thang2], [Thang3])
) PivotTable;
3. Giải pháp thay thế PIVOT trong SQL bằng CASE WHEN
Không phải hệ quản trị nào cũng hỗ trợ cú pháp PIVOT trực tiếp (ví dụ như PostgreSQL hay MySQL). Khi đó, việc kết hợp CASE WHEN với hàm tổng hợp là phương pháp thay thế PIVOT trong SQL cực kỳ linh hoạt:
SELECT
Nam,
SUM(CASE WHEN Thang = 1 THEN DoanhThu ELSE 0 END) AS Thang1,
SUM(CASE WHEN Thang = 2 THEN DoanhThu ELSE 0 END) AS Thang2,
SUM(CASE WHEN Thang = 3 THEN DoanhThu ELSE 0 END) AS Thang3
FROM BanHang
GROUP BY Nam;
4. Kỹ thuật UNPIVOT trong SQL: Đưa dữ liệu về dạng chuẩn hóa
Ngược lại với PIVOT, UNPIVOT thực hiện nhiệm vụ chuyển đổi các cột thành các dòng. Kỹ thuật này cực kỳ quan trọng khi bạn nhận được tệp dữ liệu báo cáo dạng ngang và cần chuẩn hóa về dạng dữ liệu phẳng (Flat Data) để đưa vào Power BI hay Tableau.
Cú pháp cơ bản của UNPIVOT:
SELECT Nam, Thang, DoanhThu
FROM BáoCaoNgang
UNPIVOT (
DoanhThu FOR Thang IN (Thang1, Thang2, Thang3)
) UnpivotTable;
5. Ứng dụng thực tế của PIVOT trong SQL cho Data Analyst
Việc làm chủ kỹ thuật PIVOT trong SQL đem lại nhiều lợi ích cho Data Analyst:
-
Tạo báo cáo Matrix nhanh chóng: Xoay dữ liệu doanh số theo năm và quý chỉ bằng một câu lệnh.
-
Chuẩn hóa dữ liệu đầu vào: Biến đổi các bảng báo cáo phức tạp thành dạng chuẩn hóa để xây dựng Data Model.
-
Tối ưu tốc độ xử lý: Giảm thiểu việc xuất dữ liệu ra Excel để thao tác thủ công.
6. Tổng kết
Thành thạo kỹ thuật PIVOT trong SQL và UNPIVOT là bước tiến lớn giúp bạn linh hoạt xử lý cấu trúc bảng, sẵn sàng đáp ứng mọi yêu cầu báo cáo và trực quan hóa dữ liệu cho doanh nghiệp.
✍️ Tác giả: Phan Thị Như Phước – Data Analyst tại MCNA Technology School
📞 Hotline: 0939.866.825 (Mr. Minh Khang)
🌐 Website: mcna.vn
📍 Hà Nội: 30 Trung Liệt, Đống Đa | Liền kề 44B TT2 Văn Quán, Hà Đông
📍 TP.HCM: 50B Phan Tây Hồ, Cầu Kiệu

