SQL - 基于2个限制计算行数

时间:2016-07-25 09:08:56

标签: sql oracle oracle10g

我有一个employees表格,其中包含hire_date列,我想要查询的是查询1995年和1996年雇用的员工人数。1995年有自己的专栏和1996年有自己的专栏:

 ______________
|      |      |
| 1995 | 1996 | 
|______|______|
|   2  |   3  | 
|______|______|`

伪代码:

display COUNT of rows WHERE hire_date LIKE '%95', display COUNT of rows WHERE hire_date LIKE '%96'

有人可以指导我如何实现这个目标吗?

2 个答案:

答案 0 :(得分:1)

使用此查询,您只能访问一次员工表

select  
  sum(case TO_CHAR(hire_date, 'YYYY') when '1995' then 1 end) as "1995",
  sum(case TO_CHAR(hire_date, 'YYYY') when '1996' then 1 end) as "1996"
  from employees
 where hire_date between date '1995-01-01' and date'1996-12-31';

答案 1 :(得分:0)

SELECT (SELECT COUNT(*) FROM employees WHERE hire_date = '1995') "1995",
       (SELECT COUNT(*) FROM employees WHERE hire_date = '1996') "1996"
FROM dual;