LB.*_*LB. 0 sql stored-procedures
我需要编写一个执行以下操作的查询:
我有两张桌子:
SalaryRanges: id, beginRange, endRange
UserInfo: id, salary,...
Run Code Online (Sandbox Code Playgroud)
我想要一个执行以下操作的查询:
给我一份SalaryRanges的ID列表,其中每个薪资范围满足特定范围的人数超过5人.
所以类似于:
SalaryRange ids:1,4,5,7有5个人符合各自的薪资范围.
这可以在一个查询中执行吗?或者您是否需要将查询分解为不同的调用?
这只是我的头脑,但我认为它会起作用
SELECT sr.id
FROM SalaryRanges AS sr
INNER JOIN UserInfo AS ui ON ui.Salary >= sr.beginRange AND ui.Salary <= sr.endRange
GROUP BY sr.id
HAVING count(ui.id) > 5
Run Code Online (Sandbox Code Playgroud)
确定根据评论使用BETWEEN的更新版本
SELECT sr.id
FROM SalaryRanges AS sr
INNER JOIN UserInfo AS ui ON ui.Salary BETWEEN sr.beginRange AND sr.endRange
GROUP BY sr.id
HAVING count(ui.id) > 5
Run Code Online (Sandbox Code Playgroud)
两者都应该工作