oracle中使用rownum筛选最大(最小)值遇到并列出现的问题
学习oracle的时候遇到一个问题:已有表tb_emp,tb_sales(创建代码在最后),找出完成销售业务笔数最少的职员的姓名和他完成的业务数。
首先按姓名统计每个职员一共完成了多少笔销售业务
select e.name,count(s.eid)
from tb_sales s,tb_emp e
where e.id=s.eid(+)--使用左外连接统计0笔销售业务的职员
group by e.name;
对于这个问题,我最初想到的是排序后取rownum;
select *
from(
select e.name,count(s.eid)
from tb_sales s,tb_emp e
where e.id=s.eid(+)--使用左外连接统计0笔销售业务的职员
group by e.name
order by count(s.eid)
)where rownum=1;
结果多个职员销售笔数并列最低但结果只显示其中的1个。