Выборка MIN и MAX значений в модели

Все что вы хотели знать об Yii, но боялись спросить

Модератор: core team

yadino
Специалист
Сообщения: 37
Зарегистрирован: Пн окт 17, 2016 10:24 am

Выборка MIN и MAX значений в модели

Сообщение yadino » Ср окт 19, 2016 11:58 pm

Вообщем сложный запрос у меня получается к бд. Хотел сделать стандартными релейшенами. Получаю не то что хотелось бы

Код: Выделить всё

'stoptimes2'=>array(self::HAS_MANY, 'MezhgorStopTimes', 'route_id','order'=>'trip_id ASC, stop_sequence ASC','select'=>'MAX(stop_sequence)'),


Код: Выделить всё

ActiveRecord "MezhgorStopTimes" пытается выбрать недопустимый столбец "MAX(stop_sequence)". Примечание: столбец должен существовать в таблице или являться выражением с алиасом.


Может кто сталкивался с таким?
Вообщем таблица, в ней поле trip_id, и 900 записей, 9 уникальных трипов. На каждый трип по 100 строк. Вот для каждого уникального трипа надо найти макс и мин stop_sequence. :roll:

В голове такое решение- сделать select distinct trip_id, чтобы получить номера трипов. Потом для каждого писать

Код: Выделить всё

select MAX(stop_sequence), MIN(stop_sequence) from MezhgorStopTimes where trip_id=:trip_id

Но это как-то тупо. 9 трипов, на каждый потом по запросу. Или лучше не сделать?
Помогу с вашим кодом, 1000р./час

Аватара пользователя
xoma
Администратор
Сообщения: 1900
Зарегистрирован: Ср авг 22, 2012 8:54 am
Контактная информация:

Re: Выборка MIN и MAX значений в модели

Сообщение xoma » Чт окт 20, 2016 8:18 am

Через группировку пробовали?
http://yupe.ru/subscribe - интересное от команды "Юпи!"

yadino
Специалист
Сообщения: 37
Зарегистрирован: Пн окт 17, 2016 10:24 am

Re: Выборка MIN и MAX значений в модели

Сообщение yadino » Чт окт 20, 2016 4:34 pm

например? что тут можно сгруппировать?
Помогу с вашим кодом, 1000р./час

yadino
Специалист
Сообщения: 37
Зарегистрирован: Пн окт 17, 2016 10:24 am

Re: Выборка MIN и MAX значений в модели

Сообщение yadino » Чт окт 20, 2016 5:11 pm

если я группирую по trip_id, и в том же запросе делаю

Код: Выделить всё

ORDER BY `stop_sequence` ASC
, то получаю все записи где stop_sequence=1. И то же самое, если сортировать

Код: Выделить всё

ORDER BY `stop_sequence` DESC
так и так записи с stop_sequence=1
Помогу с вашим кодом, 1000р./час

Аватара пользователя
xoma
Администратор
Сообщения: 1900
Зарегистрирован: Ср авг 22, 2012 8:54 am
Контактная информация:

Re: Выборка MIN и MAX значений в модели

Сообщение xoma » Пт окт 21, 2016 9:00 am

Вам же для каждой группы необходимо найти MAX и MIN? Вот по ним и сортируйте.
http://yupe.ru/subscribe - интересное от команды "Юпи!"

yadino
Специалист
Сообщения: 37
Зарегистрирован: Пн окт 17, 2016 10:24 am

Re: Выборка MIN и MAX значений в модели

Сообщение yadino » Ср дек 14, 2016 8:32 pm

Спасибо. Уже не помню как сделал, но вроде это и помогло.
Помогу с вашим кодом, 1000р./час


Вернуться в «Yii 1.x и Yii 2.x»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость