Truy vấn con tương quan trả về số lượng người có cùng quốc gia và id cao hơn. Vì vậy, nếu bạn so sánh nó với < 2
bạn sẽ chỉ chọn hai id cao nhất cho mỗi quốc gia. Bạn có thể hiểu rõ hơn về điều này bằng cách xem kết quả của việc chọn truy vấn con thay vì sử dụng nó như một ràng buộc:
SELECT co.id, co.person, co.country,
(
SELECT COUNT(*)
FROM person ci
WHERE co.country = ci.country -- controlling grouping column
AND co.id < ci.id -- controlling min or max
) AS higher_ids
FROM person co
https://dbfiddle.uk/?rdbms=mysql_8.0&fidfedle469d09e97e e
Lưu ý rằng trừ khi có các tối ưu hóa cụ thể đang tìm kiếm mẫu này, điều mà tôi rất nghi ngờ, truy vấn này sẽ là O (N ^ 2).