आप जो कर रहे हैं उसके लिए आपको एक सहसंबंधित सबक्वायरी की आवश्यकता नहीं है। आपकी क्वेरी के आधार पर यह एक तरीका है:
select CustomerNum, count(CustomerNum)
from Rentals R
group by CustomerNum
having count(CustomerNum) = (select max(cnt)
from (select CustomerNum, count(CustomerNum) as cnt
from Rentals
group by CustomerNum
) rc
);
मैं सबक्वेरी को from
. पर ले जाने के लिए इच्छुक हूं खंड और उपश्रेणियों का उपयोग करें:
select rc.*
from (select CustomerNum, count(CustomerNum) as cnt
from Rentals R
group by CustomerNum
) rc join
(select max(cnt) as maxcnt
from (select CustomerNum, count(CustomerNum) as cnt
from Rentals
group by CustomerNum
) rc
) m
on rc.cnt = m.maxcnt;
ये मानक SQL हैं और दोनों प्रणालियों में काम करना चाहिए। व्यवहार में, मुझे शायद top
. का उपयोग करने का एक तरीका मिल जाएगा या row_number()
SQL सर्वर 2008 पर।