繁体   English   中英

在SQL查询中限制结果

[英]Limiting results in SQL query

我正在通过低谷的方法来限制SQ​​L中的结果,并且遇到了这样一种方法:

SELECT name
FROM employees e
WHERE 2>=( SELECT COUNT(*) FROM employees e1 WHERE e1.birthdate>e.birthdate);

该查询返回了三个最年轻的员工,但我不太了解该查询的工作方式。 为什么2> =而不是2 <=? 任何人都可以阐明该查询的作用吗? 谢谢!

SELECT COUNT(*) FROM employees e1 WHERE e1.birthdate>e.birthdate

为您提供比当前雇员年轻的雇员数。 因此,只要0、1或2个人比返回该行的当前员工年轻。

最终,您将获得三个最年轻的员工。 实际上,它只会为您提供3个最年轻生日的雇员(可能超过3个雇员)

通过示例数据了解它:

employeeId birthdate
1          12/29/2014
2          11/20/2014
3          01/01/2015
4          11/19/1991

现在,评估每个子查询:

employeeId birthdate   subquery result
1          12/29/2014  how many employees have birth date > 12/29/2014 = 1
2          11/20/2014  how many employees have birth date > 11/20/2014 = 2
3          01/01/2015  how many employees have birth date > 01/01/2015 = 0
4          11/19/1991  how many employees have birth date > 11/19/1991 = 3

现在,应用条件2>= subquery result 确定它将返回Empid 1,2,3而不是4。

注意:仅供参考,还有其他方法可以有效地实现这一目标。

暂无
暂无

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

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