`
king_tt
  • 浏览: 2144830 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle查询员工人数最少的部门

阅读更多
--部门表
create table t_dept
(
 d_id number primary key ,
 d_name varchar2(20)
);
create sequence dept_sequence 
start with 1
increment by 1;
--员工表
create table t_emp
(
 e_id number primary key ,
 d_id number references t_dept(d_id),
 e_name varchar2(20)
);
create sequence emp_sequence 
start with 100
increment by 1;

insert into t_dept values(dept_sequence.nextval,'一部');
insert into t_dept values(dept_sequence.nextval,'二部');
select * from t_dept;
--“一部”插入4个员工
insert into t_emp values(emp_sequence.nextval,2,'张一');
insert into t_emp values(emp_sequence.nextval,2,'张二');
insert into t_emp values(emp_sequence.nextval,2,'张三');
insert into t_emp values(emp_sequence.nextval,2,'张四');
--“二部”插入2个员工
insert into t_emp values(emp_sequence.nextval,3,'李一');
insert into t_emp values(emp_sequence.nextval,3,'李一');
select * from t_emp;


目的:查询员工人数最少的部门

知识点:分组函数,排序,子查询,rownum

sql语句如下:

select * from (select count(*) coun,d_id deptId from t_emp group by d_id order by coun asc) where rownum=1


分析:

第一步:select count(*) coun,d_id deptId from t_emp group by d_id 查询t_emp表,根据部门d_id分组查询各部门的人数以d_id

第二步:select count(*) coun,d_id deptId from t_emp group by d_id order by coun asc 再orderby coun asc ,这样就按照人数升序排序,这样就第一条就是人数最少的

第三步:子查询,select * from (select count(*) coun,d_id deptId from t_emp group by d_id order by coun asc) where rownum=1 ,因为oracle不支持select top 1,当要取第一条数据的时候,要用到oracel给查询分配的rownum列,where rownum=1就取到第一条数据了

 

结果如下:

---------------------------------------

counn deptid

---------------------------------------

2 3

 

 

分享到:
评论

相关推荐

    Oracle 经典查询练手

    用SQL完成以下问题列表: ...15.列出所有部门的详细信息和部门人数。 16.列出各种工作的最低工资。 17.列出各个部门的MANAGER(经理)的最低薪金。 18.列出所有员工的年工资,按年薪从低到高排序。

    oracle SQL查询工具

    oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具...

    Oracle查询优化改写技巧与案例

    《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...

    oracle查询用户信息

    oracle查询用户信息1.查看所有用户2.查看用户或角色系统权限3.查看角色4.查看用户对象权限5.查看所有角色

    oracle中emp员工表与dept部门的查询

    数据库 oracle查询 摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节...

    Oracle查询优化改写技巧与案例2.zip

    《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...

    oracle查询一个月之内数据

    oracle查询一个月之内数据,例如查询某个月用户使用短信多少跳

    oracle查询表碎片

    oracle查询表碎片语句

    Oracle查询优化改写技巧与案例2.0.pdf

    Oracle查询优化改写技巧与案例2.0.pdf

    Oracle查询优化改写 技巧与案例.pdf

    Oracle查询优化改写 技巧与案例.pdf

    Oracle查询死锁表

    OracleOracle查询死锁表OracleOracle查询死锁表OracleOracle查询死锁表

    oracle查询优化pdf

    oracle查询优化电子书

    Oracle查询用户锁表

    Oracle查询用户锁表文档,相信描述如何查询用户锁表,附有代码!

    【oracle】oracle查询优化改写

    【oracle】oracle查询优化改写,oracle学习的必修课程。

    基于VB+Oracle9i员工部门管理系统(源码+系统)

    有员工/部门的查询,添加,删除,修改,密码修改等功能 数据库是用oracle9i系统自带的scott用户的table中的emp,dept等,只需在emp中添加passwd一列,将文件中连数据库的代码 ORALYX = (DESCRIPTION = (ADDRESS_...

    oracle 迅速查询和更新大数据

    oracle 迅速查询和更新大数据,oracle 迅速查询和更新大数据oracle 迅速查询和更新大数据

    Oracle查询指定表的所有字段名和数据类型SQL

    Oracle查询指定表的所有字段名和数据类型SQL

    通用查询分析器(Oracle数据查询)

    在用Oracle的时候查询不方便,网上找了这个,比较好用 Oracle数据查询,通用查询分析器

    Oracle 多表查询优化

    Oracle 多表查询优化 Oracle 多表查询优化是指在 Oracle 数据库管理系统中,为了提高多表查询的效率和性能采取的一些优化策略和技术。在 Oracle 中,多表查询是指从多个表中检索数据的操作。这种操作可能会占用大量...

    oracle日期查询相关

    select sysdate from dual 等等一些关于oracle的查询当前时间,日期的一些sql语句的

Global site tag (gtag.js) - Google Analytics