WHERE A_ID IN (subquery)
で比較を行うために、サブクエリで2つ(または複数)の列を返すことはできません。 句-A_ID
を比較するのはどの列ですか に?サブクエリは、IN
の反対側の列との比較に必要な1つの列のみを返す必要があります 。したがって、クエリは次の形式である必要があります:
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)