- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
[DATABASE] Hướng dẫn truy vấn lấy Top N dữ liệu trên sqlserver
Xin chào các bạn bài viết hôm nay, mình chia sẻ các bạn cách thực hiện truy vấn lấy Top N số dòng và tất cả dữ liệu còn lại sẽ đưa vào Other để vẽ biểu đồ báo cáo.
[DATABASE] Calculating Top N Items and Aggregating (sum) the remainder into All Other
Ví dụ: chúng ta có bảng dữ liệu như sau:
Ở hình trên, các bạn thấy dữ liệu mình gồm 20 trường dữ liệu:
Nếu bây giờ, chúng ta trình bày hết chúng vào 1 biểu đồ hình tròn thì rất khó nhìn.
Và yêu cầu ở đây, là ví dụ Sếp chỉ muốn nhìn thấy 5 hoặc N giá trị lớn nhất, còn tất cả giá trị còn lại đưa vào dữ liệu "All Others".
Chúng ta sẽ thực hiện truy vấn dữ liệu như sau:
WITH TopX
AS (SELECT TOP 10 -- Thay đổi xem số lượng ở đây
name,
qty
FROM dbo.Product
ORDER BY qty DESC)
SELECT *
FROM TopX
UNION ALL
SELECT 'All other' AS name,
SUM(qty) AS qty
FROM Product
WHERE name NOT IN
(
SELECT name FROM TopX
);
Ở lệnh trên, mình chỉ xuất hiện 10 dòng, các bạn có thể thay đổi số item muốn view ở đoạn comment, mình đã ghi chú lại ở trên.
Kết quả của truy vấn trên chúng ta sẽ được dữ liệu như ở bên dưới đây:
Thanks for watching!