我有一个要求,比如必须提取用户选择的日期范围内的所有记录,选择从 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/