最適化しようとしている次のクエリがあります。
EXPLAIN
select clb.f_name, clb.l_name, noofbooks
from (
select f_name, l_name, count(*) as noofbooks from
customer natural join loaned_book
group by f_name, l_name
) as clb
where 3 > (
select count(*) from (
select f_name, l_name, count(*) as noofbooks
from customer natural join loaned_book
group by f_name, l_name
) as clb1
where clb.noofbooks<clb1.noofbooks
)
order by noofbooks desc;
基本的に、このクエリは、no. お客様から借りた図書。この問題は、クエリで行う必要があるカウントの量に関連しています。すべての行を再カウントせずに、最初のクエリのカウント値を使用して、2 番目のクエリで選択した行を減らすことは可能ですか?
これは宿題なので、直接の回答は期待していません。任意のポインタをいただければ幸いです。