@GogenZZo

Как реализовать выборку записи в группе по минимальному значению MySQL?

Здравствуйте. Есть такой запрос:

SELECT region_id, map_id, company_id, pos
FROM regions
WHERE
ST_Contains(coords, GeomFromText('POINT(65.550001 57.146704)'))
AND
city_id = '522052229c7684e76a27982d'
GROUP BY map_id


Возвращает регион, карту, и компанию. У одной компании может быть много карт, а у карты может быть много регионов. Но регион не повторяется. Необходимо вернуть для карты, доступный регион, если их несколько, то выбрать по pos наименьший в группе map_id.
  • Вопрос задан
  • 2541 просмотр
Пригласить эксперта
Ответы на вопрос 2
Читайте про GROUP BY, HAVING.
HAVING позволяет наложить условия на записи, которые попадут в группу
Ответ написан
Комментировать
@retvizan
Вы пишите некорректный sql запрос.

По стандарту SQL в запросе с группировкой в части перечисления полей (то, что идет после SELECT) можно указывать ТОЛЬКО те поля, по которым идет группировка, или которые используются с групповыми функциями (sum, max, group_concat, ...)

Посмотрите статью Группировка в MySQL, там описано несколько способов решения проблемы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы