1
다음 쿼리를 최적화하려고합니다. 개수 비교를위한 쿼리 최적화
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;
는 기본적으로이 쿼리는 어떤의 (즉, 3 국한되지 관계 포함) "세 가지"수를 찾기 위해 노력하고있다. 고객이 대여 한 책. 이 문제는 쿼리에서 만들어야하는 개수와 관련이 있습니다. 첫 번째 쿼리의 카운트 값을 사용하여 모든 행을 다시 계산하지 않고 두 번째 쿼리에서 선택한 행을 줄일 수 있습니까?
이것은 숙제이기 때문에 직접적인 대답은 기대하지 않습니다. 모든 포인터는 감사하겠습니다.
카운트 수가 "4 4 3 3 2 2 2 1"이면 어떻게 될까요? "동점을 포함한 상위 3 개"가 "4 4 3 3"또는 "4 4 3 3 2 2 2"가되어야합니까? 또는 다른 것? –
안녕 마크 - "4 4 3 3 2 2 2"는 그 예에서 정확합니다. – jmc