--统计各个部门各个年份的入职人数 --还有一个人不属于任何部门
select
e.department_id,
d.department_name,
count(*) total,
sum(decode(to_char(hire_date,'yyyy'),'2001',1,0)) "2001",
sum(decode(to_char(hire_date,'yyyy'),'2002',1,0)) "2002",
sum(decode(to_char(hire_date,'yyyy'),'2003',1,0)) "2003",
sum(decode(to_char(hire_date,'yyyy'),'2004',1,0)) "2004",
sum(decode(to_char(hire_date,'yyyy'),'2005',1,0)) "2005",
sum(decode(to_char(hire_date,'yyyy'),'2006',1,0)) "2006",
sum(decode(to_char(hire_date,'yyyy'),'2007',1,0)) "2007",
sum(decode(to_char(hire_date,'yyyy'),'2008',1,0)) "2008"
from emp e,departments d where e.department_id=d.department_id(+) group by e. department_id,d.department_name
-- where e.department_id=20
分享到:
相关推荐
对于计算两个日期之间的差值,比如求出两个日期之间相差的天数,Oracle提供了强大的内置函数支持。本文将围绕如何使用Oracle来实现返回两个日期相差的天数这一功能展开讨论。 ### 一、问题背景 在业务场景中,经常...
- 班级表(class):字段包括班号(classid,主键),专业名(subject),系名(deptname,外键关联department.deptname),入学年份(entertime),人数(num,检查约束,最大值为30) - 学生表(student):字段...
### Oracle基本语法练习知识点 ...通过以上练习,不仅可以掌握Oracle的基本查询语法,还能深入理解如何使用各种函数、子查询以及复杂的排序和筛选条件,从而提升在实际工作中处理复杂数据查询的能力。
- **分组与计数**:使用`GROUP BY`和`COUNT`函数来统计每个部门的员工数量。 **示例代码**: ```sql -- 查询至少有一个员工的部门信息 SELECT * FROM dept d JOIN emp e ON d.deptno = e.deptno; ``` 以上这些知识...
11. 查询一个表的总记录数,可以采用_________统计函数。( C ) A. AVG(*) B. SUM(*) C. COUNT(*) D.MAX(*) 12. 要建立一个语句向Types表中插入数据,这个表只有两列,T_ID和T_Name列。如果要插入一行数据,这一...
- `TO_CHAR()`函数用于将日期转换为字符格式,这里用来提取入职日期的年份和月份,并按入职日期进行升序排列。 通过以上练习题目的解析,我们可以看到Oracle数据库中的SQL语言的强大功能,包括数据检索、排序、...
除了上述示例,Oracle查询语句还包括但不限于聚合函数(如COUNT, SUM, AVG, MAX, MIN),连接查询(JOIN),子查询,分组(GROUP BY)和排序(ORDER BY)等。熟练掌握这些查询技巧,能够极大地提高数据处理的效率,...