Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / GROUP BY / 4 сообщений из 4, страница 1 из 1
26.02.2014, 18:49:39
    #38573403
GogenZzo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GROUP BY
Здравствуйте. Как сделать группировку по полю, но с условием? Например:

map_id | pos
222 | 1
222 | 2
333 | 1
444 | 2

Сделать группировку по полю map_id но с наименьшим pos. В результате получить

222 | 1
333 | 1
444 | 2

Пытался сделать так

Код: sql
1.
2.
3.
4.
SELECT region_id, map_id, company_id, MIN( pos )
FROM regions
GROUP BY map_id
ORDER BY pos;



Но он просто берет минимальный pos, а данные берет все равно из pos 2
...
Рейтинг: 0 / 0
26.02.2014, 19:35:48
    #38573465
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GROUP BY
Раз в запросе 4 поля, а не 2 как в примере, вам сюда: FAQ: Выборка первой/последней записи в группах
...
Рейтинг: 0 / 0
26.02.2014, 21:10:50
    #38573534
GogenZzo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GROUP BY
Извиняюсь за наглость, но не могу сообразить. Полностью запрос выглядит как

Код: sql
1.
2.
3.
4.
5.
6.
7.
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.
...
Рейтинг: 0 / 0
26.02.2014, 22:35:24
    #38573578
retvizan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GROUP BY
GogenZzo,

Посмотрите тут
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / GROUP BY / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]