Не се нуждаете от корелирана подзаявка за това, което правите. Ето един начин въз основа на вашата заявка:
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 Server 2008.