--部门表 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
相关推荐
用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查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...
oracle查询用户信息1.查看所有用户2.查看用户或角色系统权限3.查看角色4.查看用户对象权限5.查看所有角色
数据库 oracle查询 摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节...
《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...
oracle查询一个月之内数据,例如查询某个月用户使用短信多少跳
oracle查询表碎片语句
Oracle查询优化改写技巧与案例2.0.pdf
Oracle查询优化改写 技巧与案例.pdf
OracleOracle查询死锁表OracleOracle查询死锁表OracleOracle查询死锁表
Oracle 基础查询关联查询练习题中第一个练习题是查询职员表中,在 20 和 30 号部门工作的员工姓名和部门号。该查询使用了 IN 运算符来检索部门号在 20 和 30 之间的员工信息。 知识点:IN 运算符的使用、基础查询...
oracle查询优化电子书
Oracle查询用户锁表文档,相信描述如何查询用户锁表,附有代码!
【oracle】oracle查询优化改写,oracle学习的必修课程。
有员工/部门的查询,添加,删除,修改,密码修改等功能 数据库是用oracle9i系统自带的scott用户的table中的emp,dept等,只需在emp中添加passwd一列,将文件中连数据库的代码 ORALYX = (DESCRIPTION = (ADDRESS_...
oracle 迅速查询和更新大数据,oracle 迅速查询和更新大数据oracle 迅速查询和更新大数据
Oracle查询指定表的所有字段名和数据类型SQL
在用Oracle的时候查询不方便,网上找了这个,比较好用 Oracle数据查询,通用查询分析器
Oracle 多表查询优化 Oracle 多表查询优化是指在 Oracle 数据库管理系统中,为了提高多表查询的效率和性能采取的一些优化策略和技术。在 Oracle 中,多表查询是指从多个表中检索数据的操作。这种操作可能会占用大量...