--部门表 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查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具...
### Oracle经典查询练习知识点解析 #### 1. 列出至少有一个员工的所有部门 为了找出至少有一个员工的所有部门,我们需要连接`emp`表和`dept`表,并且确保只选择那些在`emp`表中有记录的部门。可以使用内连接(INNER...
《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...
oracle查询用户信息1.查看所有用户2.查看用户或角色系统权限3.查看角色4.查看用户对象权限5.查看所有角色
数据库 oracle查询 摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节...
《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...
2. 查询特定部门员工信息:使用WHERE子句查询与自己同部门的所有员工,如:`SELECT * FROM emp WHERE deptno = 10;` 3. 查找最低工资员工:使用子查询找到每个部门的最低工资员工,例如:`SELECT * FROM emp WHERE ...
Oracle 查询树形结构 Oracle 查询树形结构是一种特殊的查询方式,它可以将树形结构的数据从 Oracle 数据库中检索出来。这种结构广泛应用于各种应用系统中,例如管理系统、文件系统、组织结构等。 在 Oracle 中,...
根据提供的文档信息,我们可以归纳总结出一系列关于Oracle SQL的经典查询案例及解析,这些案例主要围绕着`scott.emp`(员工表)与`scott.dept`(部门表)两个表进行。以下将详细介绍文档中提到的部分经典查询知识点...
Oracle查询优化改写 技巧与案例.pdf
比如,可以统计各部门的人数比例,分析员工年龄结构、性别分布,以及员工离职率等,帮助管理层了解人力资源现状,优化人员配置。 五、报表生成 报表生成功能是员工管理系统的关键一环,它可以自动汇总各项统计数据...
Oracle 基础查询关联查询练习题中第一个练习题是查询职员表中,在 20 和 30 号部门工作的员工姓名和部门号。该查询使用了 IN 运算符来检索部门号在 20 和 30 之间的员工信息。 知识点:IN 运算符的使用、基础查询...
例如,假设我们有一个名为`employees`的表,其中包含`employee_id`(员工ID),`department_id`(部门ID)和`salary`(薪水)等字段。如果我们想找出所有薪水相同的员工,但不关心他们的其他信息,我们可以使用以下...
根据提供的标题、描述、标签及部分内容,我们可以了解到本篇文章主要关注的是如何在Oracle数据库中查询一个月内的数据。这里的关键在于日期范围的确定以及如何利用Oracle的内置函数来完成这一任务。接下来,我们将...
oracle查询死锁语句,并能根据根据ID值杀死锁表的进程!
有员工/部门的查询,添加,删除,修改,密码修改等功能 数据库是用oracle9i系统自带的scott用户的table中的emp,dept等,只需在emp中添加passwd一列,将文件中连数据库的代码 ORALYX = (DESCRIPTION = (ADDRESS_...
Oracle 查询语句大全-精华版 Oracle 查询语句大全是 Oracle 数据库管理系统中最基本也是最重要的组成部分,用于管理和维护数据库。本文将详细介绍 Oracle 查询语句的使用方法和实践操作。 一、创建用户和授权 在 ...
Oracle 多表查询优化 Oracle 多表查询优化是指在 Oracle 数据库管理系统中,为了提高多表查询的效率和性能采取的一些优化策略和技术。在 Oracle 中,多表查询是指从多个表中检索数据的操作。这种操作可能会占用大量...
在SQL查询中对Oracle数据库进行时间段操作是一项关键技能,特别是在数据恢复和历史数据分析时。Oracle数据库提供了多种方式来处理时间范围的数据,包括SQL查询、闪回功能和快照。下面我们将详细探讨这些知识点。 ...