我正在尝试优化以下查询。
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;
基本上这个查询试图找到&#34;前三个&#34;计数(包括关系,即不限于3)。由客户借出的书籍。 该问题与必须在查询中进行的计数量有关。 是否可以使用第一个查询中的计数值来减少第二个查询中的选定行而不重新计算所有行?
这是一项家庭作业,所以我不期待直接回答。任何指针都会受到赞赏。