Du behøver ikke en korreleret underforespørgsel til det, du laver. Her er en måde baseret på din forespørgsel:
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
);
Jeg ville være tilbøjelig til at flytte underforespørgslen til from
klausul og brug underforespørgsler:
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;
Disse er standard SQL og bør fungere i begge systemer. I praksis ville jeg nok finde en måde at bruge top
på eller row_number()
på SQL Server 2008.