Forum Webscript.Ru

Общие => Базы данных => Тема начата: hanslinger от 13 Февраля 2006, 18:53:47

Название: MySQL: distinct? group by?...
Отправлено: hanslinger от 13 Февраля 2006, 18:53:47
Следующая картина. Есть таблица:

/===========================\\
|  id  |   date   |  price  |
|===========================|
|   1  |01.01.2006|  1000000|
[b]|   1  |03.01.2006|  2000000|[/b]
|   1  |02.01.2006|  5000000|
|   2  |01.02.2006|  7000000|
|   2  |21.01.2006|  3000000|
[b]|   2  |01.03.2006|  4000000|[/b]
\\===========================/

Нужно выбрать для каждого id значение price при максимальной дате.
Пока родил SELECT DISTINCT id, date, price GROUP BY id;
Максимальную дату вытащить не получается.
Что-то я совсем залип.
Название: MySQL: distinct? group by?...
Отправлено: Макс от 13 Февраля 2006, 19:36:06
через sub-select-ы ИМХО
Название: MySQL: distinct? group by?...
Отправлено: sublimity от 13 Февраля 2006, 19:41:08
SELECT id,price,MAX(date)
FROM table1
GROUP by id;
Название: MySQL: distinct? group by?...
Отправлено: unclebob от 21 Февраля 2006, 21:17:13
to sublimity
MAX(date) вернет везде одно и тоже значение
Название: MySQL: distinct? group by?...
Отправлено: unclebob от 22 Февраля 2006, 20:09:06
вру...
но вот цена точно не правильная будет выбрана. не из той записи, в которой максимальная дата.
Название: MySQL: distinct? group by?...
Отправлено: for_i_0 от 22 Февраля 2006, 21:30:00
unclebob
Выше приведенный запрос равноправен:
SELECT `id`, `date`, `price`FROM  `sometable` GROUP BY `id`

[OFF]через sub-select-ы ИМХО - перыый ответ по этому сабжу[/OFF]
Название: MySQL: distinct? group by?...
Отправлено: hanslinger от 22 Февраля 2006, 21:33:38
Ок, попробую.
Название: MySQL: distinct? group by?...
Отправлено: andymc от 07 Марта 2006, 22:24:43
1. Если я не ошибаюсь, то для хранения даты поле должно иметь формат ГГГГ-ММ-ДД, а не ДД-ММ-ГГГГ.
2. Если пытаться найти максимаьлное значение в поле формата ДД-ММ-ГГГГ, то скорее всего будет выведено максимальное значение по ДД (день месяца), что недопустимо.
3. Вижу выход только в том, чтобы фильтровать значеиня уже через PHP, видоизменяя значение даты...

интересно, эти мои замечания ещё нужны?....
Название: MySQL: distinct? group by?...
Отправлено: hanslinger от 08 Марта 2006, 00:44:37
Спасибо, конечно, за участие, но я пока на это забил :)
Название: MySQL: distinct? group by?...
Отправлено: Tayfur от 23 Ноября 2006, 15:17:33
Дату надо хранить в формате date - тогда сортировка будет правильной и всё получится