sql - 我们可以使用具有相同字段名的 group by 和 where 条件吗

标签 sql sql-server tsql sql-server-2008

我有一个要求,比如必须提取用户选择的日期范围内的所有记录,选择从 2011 年 1 月 15 日到 2011 年 8 月 20 日开始的所有员工并按日期分组。

我应该如何为此编写 SQL 查询:

  SELECT *
    FROM employees 
   WHERE startdate >= '15-jan-2011' 
     AND startdate <= '20-aug-2011'
GROUP BY startdate

最佳答案

绝对是的。它将导致过滤日期范围内的记录,然后按有数据的每一天对其进行分组。

应该注意的是,您只能选择开始日期,然后选择您正在计算的任何聚合。否则,它应该工作得很好。

例如,此查询将为您提供每个开始日期的员工数量:

SELECT startdate, count(*)
FROM employees 
WHERE startdate >= '15-jan-2011' 
      AND startdate <= '20-aug-2011'
GROUP BY startdate

关于sql - 我们可以使用具有相同字段名的 group by 和 where 条件吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7073497/

相关文章:

sql - 交叉应用与 UNPIVOT

mysql - Netbeans 将查询中的数据放入变量中

sql-server - 使用 ODBC 驱动程序调用 Microsoft SQL Server 上的存储过程

sql-server - VCS 中具有迁移的数据库

sql-server - 如何引用名称中带有反斜杠 (\) 的 SQL Server?

sql - 如何一次性删除SQL Server数据库中的所有存储过程?

sql - 如果 MV 使用 ASNI Join,查询重写会失败

php - 如何从 Doctrine 查询生成器中获取部分结果

c# - 如何从 gridview 将多条记录添加到 SQL Server 表中?

json - 如何在 SQL Server 2016 中使用 OPENJSON 在 Json 中读取带有空格的字段名称