[DATABASE] Hướng dẫn truy vấn lấy Top N dữ liệu trên sqlserver

[DATABASE] Hướng dẫn truy vấn lấy Top N  dữ liệu trên sqlserver
Đăng bởi: Thảo meo - Lượt xem: 415 13:30:58, 29/03/2022DATABASE   In bài viết

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

top10_allother

Ví dụ: chúng ta có bảng dữ liệu như sau:

data-topn

Ở 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:

all_other_sqlserver

Thanks for watching!

Tags: top n sqlselect top n

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[DATABASE] Hướng dẫn truy vấn lấy Top N  dữ liệu trên sqlserver
Đăng bởi: Thảo meo - Lượt xem: 415 13:30:58, 29/03/2022DATABASE   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp