繁体   English   中英

SELECT查询,其中一个属性具有条件,而另一个属性不在同一表中SQL

[英]SELECT query where one attribute has a condition and the other one doesn't in the same table SQL

问题陈述是:“创建一个查询,向您提供雇员总数,并从该总数中得出1995-1998年之间雇用的雇员总数”。

我设法将两者都考虑了下来并进行了测试,所以我知道它们是分开工作的:

SELECT COUNT(employee_id) AS "Total number of employees"
FROM employees

对于第一个问题,

SELECT COUNT(employee_id) AS "Total between 1995-1198"
FROM employees
WHERE hire_date BETWEEN '1-ENE-1995' AND '31-12-1998';

您需要条件聚合。 这是一种方法:

select count(*) as Count_Total,
       sum(case when hire_date >= date '1995-01-01' and hire_date < date '1999-01-01'
                then 1 else 0
           end) as Count1995_1998
from employees;

笔记:

  • 这将date限定符用作日期。 这使您可以在Oracle中输入ISO标准格式。 使用日期时,请使用一致的格式。
  • 这对date列使用显式比较,对于较晚的日期使用< 这是故意的。 在Oracle中,具有date数据类型的列也可以包含时间。 时间部分会导致查询中断。
  • 条件聚合是在聚合函数中使用case语句。

就我所了解的问题Sql server而言:从(firstDate,endDate)之间的hiratedate的雇员中选择count(*),希望对您有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM