оператор mysql min where

#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 для получения первой строки.