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)