如标题中所述,我想只显示具有最大数字的行,对于这种情况,它是4号并且没有更少。
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;
答案 0 :(得分:0)
不要使用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;
答案 1 :(得分:0)
您可以通过having
- 子句实现此目的,在该子句中,您将每个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)
BTW:我将查询更改为join .. ON ..
语法;连接同名命名属性的表的natural join
在数据库架构发生变化时会带来“意外连接”的危险。