如何编写SQL查询所有下属员工薪资均超1000的OrgID?
实现方案
方案1:分组聚合查询(性能最优,写法简洁)
核心逻辑:按OrgID分组后,若该分组内最低薪资大于1000,则说明该机构所有员工薪资都满足要求。
SELECT OrgID FROM table_AGE GROUP BY OrgID HAVING MIN(Salary) > 1000;
方案2:NOT EXISTS 子查询(逻辑直观,易扩展)
核心逻辑:直接排除存在任意员工薪资≤1000的机构,剩余结果即为符合要求的OrgID。
SELECT DISTINCT t.OrgID FROM table_AGE t WHERE NOT EXISTS ( SELECT 1 FROM table_AGE t_sub WHERE t_sub.OrgID = t.OrgID AND t_sub.Salary <= 1000 );
执行结果说明
针对给出的示例数据,两种方案返回的结果均为OrgID = 2,符合预期要求。
内容的提问来源于stack exchange,提问作者Aditya sharma
相关产品推荐
相关产品推荐

