2017-10-05 60 views
0

爲加入日期的老師準備一張表,需要查詢查找大部分加入學校的老師並且查詢應顯示加入該老師的年份和no年。
我已經寫了查詢得到了使用限制的結果,但有沒有其他方式來編寫查詢。不用rownum或者限制選擇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'不是有效的Oracle語法,據我所知。你在使用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);