|
MySQL.RU - Webboard
Вернуться
Группировка по двум полям с сортировкой (Tachyon) 03/04/2013 - 12:31:41
Re: Группировка по двум полям с сортировкой (Akina) 03/04/2013 - 13:28:00
Re: Группировка по двум полям с сортировкой (Tachyon) 03/04/2013 - 13:52:29
Re: Группировка по двум полям с сортировкой (Akina) 03/04/2013 - 16:31:25
Re: Группировка по двум полям с сортировкой (Tachyon) 03/04/2013 - 18:25:07
Re: Группировка по двум полям с сортировкой (Akina) 03/04/2013 - 20:43:18
> Original message text:
> From: Tachyon - 03/04/2013 - 12:31:41
> Subject:Группировка по двум полям с сортировкой
> -----------------
> Здравствуйте. Необходимо решить следующую задачу:
> "SELECT enterdate, program, period, field1...field4 FROM table WHERE enterdate <= '2013-04-03' GROUP BY program, period"
> В базе может быть несколько значений с совпадающими program-period, отличающиеся по enterdate. Такой запрос работает верно, выдает по одному значению на каждую пару program-period, но необходимо сделать так, чтобы из множества таких пар выбирала ту, где максимальная enterdate.
> Заранее спасибо.
>
From: Akina - 03/04/2013 - 13:28:00
Subject:Группировка по двум полям с сортировкой
-----------------
> Такой запрос работает верно
Результат выглядит как верный - но на самом деле запрос работает неверно, и в один прекрасный день выдаст совершенно идиотский, хоть и формально верный, результат.
Читайте маны по ограничениям авторасширения группировки.
> необходимо сделать так, чтобы из множества таких пар выбирала ту, где максимальная enterdate
SELECT t1.*
FROM table t1,
(
SELECT MAX(t3.enterdate) enterdate, t3.program, t3.period
FROM table t3
HAVING MAX(t3.enterdate) <= '2013-04-03'
GROUP BY t3.program, t3.period
) t2
WHERE t1.enterdate = t2.enterdate
AND t1.program = t2.program
AND t1.period = t2.period;
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
42318
|
|