@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.
  • Вопрос задан
  • 2545 просмотров
Пригласить эксперта
Ответы на вопрос 2
Читайте про GROUP BY, HAVING.
HAVING позволяет наложить условия на записи, которые попадут в группу
Ответ написан
Комментировать
@retvizan
Вы пишите некорректный sql запрос.

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

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

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

Похожие вопросы
Wanted. Москва
До 200 000 ₽
div. Ставрополь
от 50 000 до 120 000 ₽
Lachestry Таганрог
от 170 000 до 200 000 ₽
01 дек. 2024, в 12:19
6000 руб./за проект
01 дек. 2024, в 11:44
10000 руб./за проект
29 нояб. 2024, в 07:44
20000 руб./за проект