SQL Query, можно сделать одним запросом? - PullRequest
0 голосов
/ 25 ноября 2010

Мне нужно написать запрос, который выполняет следующее:

У меня есть две таблицы:

 SalaryRanges: id, beginRange, endRange
 UserInfo: id, salary,...

Я хотел бы иметь запрос, который выполняет следующие действия:

Дайте мне список идентификаторов SalaryRanges, где существует более 5 человек, соответствующих данному диапазону для каждого диапазона зарплат.

Примерно так:

SalaryRange id: 1, 4, 5, 7 имеют 5+ человек, соответствующих их диапазонам зарплат.

Возможно ли это сделать в одном запросе?Или вам нужно разбить запрос на несколько вызовов?

1 Ответ

5 голосов
/ 25 ноября 2010

Это только из головы, но я думаю, что это будет работать

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

Хорошо, обновленная версия, используя 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

Оба должны работать, хотя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...