Anda tidak dapat mengembalikan dua (atau beberapa) kolom di subkueri untuk melakukan perbandingan di WHERE A_ID IN (subquery)
klausa - kolom mana yang harus dibandingkan A_ID
ke? Subkueri Anda hanya boleh mengembalikan satu kolom yang diperlukan untuk perbandingan dengan kolom di sisi lain IN
. Jadi kueri harus dalam bentuk:
SELECT * From ThisTable WHERE ThisColumn IN (SELECT ThatColumn FROM ThatTable)
Anda juga ingin menambahkan pengurutan sehingga Anda dapat memilih hanya dari baris teratas, tetapi Anda tidak perlu mengembalikan COUNT sebagai kolom untuk melakukan pengurutan; menyortir dalam ORDER
klausa tidak tergantung pada kolom yang dikembalikan oleh kueri.
Coba sesuatu seperti ini:
select count(distinct dNum)
from myDB.dbo.AQ
where A_ID in
(SELECT DISTINCT TOP (0.1) PERCENT A_ID
FROM myDB.dbo.AQ
WHERE M > 1 and B = 0
GROUP BY A_ID
ORDER BY COUNT(DISTINCT dNum) DESC)