【发布时间】:2019-03-26 21:40:03
【问题描述】:
我正在使用这个 Oracle 数据库学习 SQL。
我在任务中遇到了一些问题:显示2004年、2005年、2006年年复一年的所有员工人数和录用人数。
这两部分我可以分开做,但是老师说要在一个查询中处理,不需要子查询。
SELECT COUNT(EMPLOYEE_ID) FROM EMPLOYEES;
以上行计算所有员工。
SELECT EXTRACT(YEAR FROM HIRE_DATE) AS YEAR, COUNT(EMPLOYEE_ID) AS HIRED_EMPLOYEES
FROM EMPLOYEES
WHERE EXTRACT(YEAR FROM HIRE_DATE) IN (2004, 2005, 2006)
GROUP BY EXTRACT(YEAR FROM HIRE_DATE);
以上部分适用于计算 2004 年、2005 年、2006 年雇用的人数。
我认为也许有一种方法可以将我的结果按年份分组,并在这个单一查询中获得员工总数,但 WHERE 部分是障碍。我会很感激任何建议,可能尽可能简单,因为这只是我的第二类写作查询。
【问题讨论】:
-
UNION两个查询?诡计多端...