Tình tổng mỗi phần tử khi truy vấn TOP5 SQL

Chào mọi người,

Minh có câu hỏi hy vọng nhận được trợ giúp của mọi người như sau: Mình muốn hiển thị ra Top 5 DEFECT_ID và tính tổng QUANTITY của mỗi loại DEFECT_ID trong Top 5 đó bằng 1 câu lệnh truy vấn SQL. Thanks.

Dưới đây là dữ liệu từ bảng Defect trong cơ sở dữ liệu:
Trong đó: DEFECT_ID: mã lỗi gặp phải
QUANTITY: Số lỗi gặp phải

ID DEFECT_ID QUANTITY
75078 401 2
75079 401 2
75080 520 1
75081 520 1
75082 305 2
75083 558 2
75084 507 1
75085 507 1
75086 558 1
75087 319 2
75088 520 1
75089 538 2
75090 597 2
75091 520 1
75092 808 1
75093 849 1
75094 628 1
75095 401 2
75096 521 2
75097 401 1
75098 503 1
75099 520 1
75100 399 2
75101 520 1
75102 521 1
75103 399 1
75104 534 1
75105 808 1
75106 849 1
75107 654 1
75108 837 1
75109 503 2
75110 702 1
75111 542 1
75112 521 2
75113 521 1
75114 319 1
75115 516 2
75116 503 1
75117 521 2

ko hiểu bạn ơi. mà ko ai làm hộ bài tập đâu nhé

Mình đã sửa lại câu hỏi cho rõ ràng hơn, đây là vấn đề mình gặp phải khi truy vấn CSDL mà mình ít thấy có truy vấn lồng ghép như vậy khi tìm kiếm trên mạng. Đây không phải là bài tập mong mọi người trợ giúp. Thanks

    SELECT T.DEFECT_ID, SUM(T.QUANTITY)
    FROM (
        SELECT TOP 5 DEFECT_ID, QUANTITY
        FROM Defect
    ) AS T
    GROUP BY T.DEFECT_ID

Top 5 defect ID theo tiêu chí gì à cậu?
Và cậu đang dùng hệ quản trị CSDL gì thế?

4 Likes

Mình đang dùng SQL server.
Top 5 DEFECT_ID là liệt kê top 5 DEFECT_ID có tổng QUANTITY lớn nhất. Mình lấy ví dụ là DEFECT_ID: 401 có tổng QUANTITY là: 2+2+2+1 = 7. Thì tổng 7 lỗi này nếu nằm trong Top 5 số lỗi sẽ trả ra 5 DEFECT_ID đó.
Phần mình đang vướng là không chỉ lấy ra Top 5 này mà còn tính tổng cái QUANTITY của từng DEFECT_IT trong Top 5 đó.

Bạn thử xem

SELECT TOP 5 T.DEFECT_ID, T.SUMQUANTITY
FROM (
	SELECT DEFECT_ID, SUM(T.QUANTITY) as SUMQUANTITY
	FROM Defect
	GROUP BY T.DEFECT_ID
	ORDER BY SUMQUANTITY DESC
) AS T

Không cần truy vấn lồng đâu, quan trọng chỗ ORDER BY ấy :slight_smile:

SELECT TOP 5
DEFECT_ID, SUM(T.QUANTITY) as SUMQUANTITY
...
4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?