Вы не можете вернуть два (или несколько) столбца в своем подзапросе, чтобы выполнить сравнение в предложении WHERE A_ID IN (subquery)
- с каким столбцом он должен сравнивать A_ID
? Ваш подзапрос должен возвращать только один столбец, необходимый для сравнения, со столбцом на другой стороне IN
. Таким образом, запрос должен иметь форму:
SELECT * From ThisTable WHERE ThisColumn IN (SELECT ThatColumn FROM ThatTable)
Вы также хотите добавить сортировку, чтобы вы могли выбирать только из верхних строк, но вам не нужно возвращать COUNT в качестве столбца, чтобы выполнить сортировку; сортировка в предложении ORDER
не зависит от столбцов, возвращаемых запросом.
Попробуйте что-то вроде этого:
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)