2017-10-05 2 views
0

참여 날짜가있는 선생님을위한 테이블이 있어야하며, 대부분의 선생님이 학교에 합류했음을 알 수있는 쿼리를 작성해야하며 쿼리에 참여한 교사의 연도와 번호가 표시되어야합니다 년.
제한을 사용하여 결과를 얻었습니다. 그러나 다른 방법으로 쿼리를 작성합니다.rownum 또는 limit를 사용하지 않고 max (value)와 해당 행을 선택하십시오.

select 
    count(teah_id) as no_of_teachers, 
    substr(DATE_OF_JOINING,1,4) as year 
from teacher 
group by substr(DATE_OF_JOINING,1,4) 
order by count(phy_id) desc 
limit 1 
+0

는'LIMIT'는 내가 아는 한 유효한 오라클 구문이 아닙니다. MySQL을 사용하고 있습니까? –

+0

예 MySQL을 사용하고 있습니다. rownum을 사용하지 않고 oracle에서 동일한 쿼리를 작성하는 방법은 무엇입니까? – mohan

답변

0

당신은 가장 높은 수를 찾기 위해 재사용 다음 CTE로 현재 쿼리를 넣어 수 :

with cte as (
    select 
     count(teah_id) as no_of_teachers, 
     substr(DATE_OF_JOINING,1,4) as year 
    from teacher 
    group by substr(DATE_OF_JOINING, 1, 4) 
) 

select 
    year, 
    no_of_teachers 
from cte 
where 
    no_of_teachers = (select max(no_of_teachers) from cte); 
관련 문제