#mysql #sql #select #min
#mysql — сервер #sql #выберите #мин #mysql #min
Вопрос:
итак, у нас есть функция mysql MIN () для получения минимума в таблице … но что, если я хочу получить MIN () на основе критериев
итак, что-то вроде MIN (возраст) ГДЕ высота < 170
в котором цель состоит в том, чтобы получить минимальный возраст ТОЛЬКО для людей, чей рост < 170…so допустим, сэм — самый молодой из тех, у кого рост < 170, но пэм моложе сэма, но имеет рост > 170, тогда запрос должен возвращать sam вместо pam…
как бы я составил такой запрос?
Комментарии:
1. Вы имеете в виду, что запрос вернет 23 (возраст Сэма), верно?
Ответ №1:
Вы говорите, что хотите «минимальный возраст ТОЛЬКО для людей, чей рост < 170»
SELECT MIN(age)
FROM YourTable
WHERE height < 170
Тогда на самом деле все будет работать так, как вам требуется!
WHERE
ограничивает предварительную агрегацию строк, HAVING
может использоваться для фильтрации результатов агрегирования.
Комментарии:
1. Вы имеете в виду
select name from yourtable where height < 170 having min(age)
, что в противном случае «Pam» все равно не будет отображаться 🙂2. @Johan — Нет, я был очень осторожен, чтобы процитировать фразу в вопросе OP, к которой относится мой ответ. Если им действительно нужно имя, они должны просто использовать
WHERE
,ORDER BY
иLIMIT
для получения первой строки.