Đại khái thì lý thuyết nó như thế này, cũng chưa thử
=== chỉnh sửa
where B2.ID > B1.ID ) ===> sửa thành where B2.ID = B1.ID
Đã thử, kết quả chính xác với mọi giá trị của N
Mã:
select * from Bang B1 where
(N - 1) = (select count(distinct(Qty))
from Bang B2
where B2.ID = B1.ID
and B2.Qty > B1.Qty )
-- muốn số lớn thứ mấy thì thay vào N. Trong đề bài này, muốn số lớn thứ 2 nên N=2
-- đối với loại truy vấn này, câu truy vấn con đề cập đến phần tử (bảng) của câu bọc ngoài nó
-- nên được gọi là correlated subquery
=== chỉnh sửa
where B2.ID > B1.ID ) ===> sửa thành where B2.ID = B1.ID
Đã thử, kết quả chính xác với mọi giá trị của N
Lần chỉnh sửa cuối: