正如標題中所述,我只想顯示具有最大數字的行,對於這種情況,它的數字是4,並且沒有更少。僅顯示查詢中列的最大值meno - SQL
select divak.MENO,count(divak.MENO)
from sledovanost
natural join tv_stanice
natural join divak
group by divak.meno
order by count(divak.MENO)desc;
正如標題中所述,我只想顯示具有最大數字的行,對於這種情況,它的數字是4,並且沒有更少。僅顯示查詢中列的最大值meno - SQL
select divak.MENO,count(divak.MENO)
from sledovanost
natural join tv_stanice
natural join divak
group by divak.meno
order by count(divak.MENO)desc;
您可以通過一個having
-clause實現這一目標,在其中您比較每個MENO
計數與最大MENO
計數(由子查詢檢索):
select divak.MENO,count(divak.MENO)
from sledovanost
natural join tv_stanice
natural join divak
group by divak.meno
having count(divak.MENO) = (
select (max(count(divak.MENO))
from sledovanost
natural join tv_stanice
natural join divak
group by divak.meno)
順便說一句:我的查詢變更爲join .. ON ..
語法; natural join
,它連接名稱相同的屬性的表,每當數據庫模式更改時,都有「無意的連接」的危險。
不要使用natural join
。它使用列的名稱來匹配表,並且不顯示查詢中的名稱。這是一個等待發生的錯誤。使用USING
或ON
。
在Oracle中,你通常會做到這一點使用row_number()
或rank()
取決於你是否不想重複:
with t as (<your query here but name the second column>)
select t.*
from (select t.*, rank() over (order by cnt desc) as seqnum
from t
) t
where seqnum = 1;
我想他想要這樣一個:Result
非常感謝!這正是我想要的。 –
從性能的角度來看,這不是最好的解決方案。 –