U hebt geen gecorreleerde subquery nodig voor wat u doet. Hier is een manier op basis van uw vraag:
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
);
Ik zou geneigd zijn om de subquery te verplaatsen naar de from
clausule en gebruik subquery's:
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;
Dit zijn standaard SQL en zouden in beide systemen moeten werken. In de praktijk zou ik waarschijnlijk een manier vinden om top
. te gebruiken of row_number()
op SQL Server 2008.