题目
思路
查询入职时间最晚的员工信息,即筛选出条件为hire_date 最大的员工信息
注意
- 聚合函数不能直接用在 WHERE 后做筛选条件。因为SQL的执行顺序是WITH AS --> FROM ( JOIN ) --> WHERE --> GROUP BY --> HAVING --> SELECT --> ORDER BY。就是说,WHERE是对分组前的结果集进行条件筛选的,而聚合函数是对分组后的结果集进行操作的。那如果就要在WHERE后使用聚合函数该怎么办呢?这里可以使用子查询来实现(如答案所示)。
- 因为不清楚入职时间最晚的员工是否只有1人,因此不建议使用 ORDER BY + LIMIT。
答案
SELECT
*
FROM
employees
WHERE
hire_date =