Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / max() и group by / 16 сообщений из 16, страница 1 из 1
05.02.2014, 20:47:32
    #38551075
Kirill_Gvozdev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
max() и group by
Ребята, помогите составить запрос. есть таблица, допустим с 3 столбцами
Код: plaintext
id, model, km
id индекс. Нужно сгруппировать по model максимальному(минимальному) значению km. делал так
Код: plsql
1.
SELECT id,model,MAX(km) FROM table GROUP BY model LIMIT 5

. Это таблица шрёдингера получается, вместо требуемого. Подскажите как верно составить запрость, не могу такой с JOIN придумать.
...
Рейтинг: 0 / 0
05.02.2014, 21:03:00
    #38551097
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
max() и group by
Так?
Код: sql
1.
2.
3.
4.
5.
SELECT model,MAX(km) 
FROM table 
GROUP BY model 
ORDER BY MAX(km) DESC
LIMIT 5
...
Рейтинг: 0 / 0
05.02.2014, 21:04:00
    #38551098
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
max() и group by
Kirill_GvozdevНужно сгруппировать по model максимальному(минимальному) значению km.А теперь то же, но полностью и чтобы понятно. Можно на примере.
...
Рейтинг: 0 / 0
05.02.2014, 21:16:17
    #38551106
Kirill_Gvozdev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
max() и group by
Как бы это выразить то) Есть таблица с результатами. допустим в ней три столбца. id для ключа, модель автомобиля (модели повторяются) и цена пробега 1 км пути на этом автомобиле. Что мне нужно из нее извлечь. 5 максимальных значений цены пробега. Если в эти значения попадают одинаковые модели, они должны сгрупироваться, что бы не повторяться, причем из повторяющихся значений должны быть выбрано максимальное.
...
Рейтинг: 0 / 0
05.02.2014, 21:20:46
    #38551111
retvizan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
max() и group by
Kirill_Gvozdev,
посмотрите эту статью
...
Рейтинг: 0 / 0
05.02.2014, 21:21:51
    #38551113
Kirill_Gvozdev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
max() и group by
Cygapb-007,

не верно этот запрос работает. из сгруппированных строк столбца model выбирается не максимальное значение одинаковых строк а рандомное какое то
...
Рейтинг: 0 / 0
05.02.2014, 21:34:10
    #38551121
retvizan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
max() и group by
Kirill_GvozdevCygapb-007,
не верно этот запрос работает. из сгруппированных строк столбца model выбирается не максимальное значение одинаковых строк а рандомное какое то
А может вы неправильно переписали запрос? В нем выбираются только 2 поля, а не запись целиком. И это не случайно.
...
Рейтинг: 0 / 0
05.02.2014, 21:41:48
    #38551133
Kirill_Gvozdev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
max() и group by
retvizan, прошу прощения за невнимательность, действительно работает ваш вариант. Но как мне выбрать всю запись?
...
Рейтинг: 0 / 0
05.02.2014, 21:55:19
    #38551145
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
max() и group by
Kirill_Gvozdev,

Сджойните результат этого запроса с табличкой ещё раз и найдите в ней ту запись(и), в которой есть такое максимальное значение.
...
Рейтинг: 0 / 0
05.02.2014, 21:58:04
    #38551147
Kirill_Gvozdev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
max() и group by
Arhat109, а если эта пара model-km не уникальна? маловероятно конечно, но все же
...
Рейтинг: 0 / 0
05.02.2014, 22:04:18
    #38551152
retvizan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
max() и group by
Kirill_Gvozdevretvizan, прошу прощения за невнимательность, действительно работает ваш вариант. Но как мне выбрать всю запись?Вариант не мой, а Cygapb-007
Что касается окончательного ответа для вас, то вы говорите одно, пишите другое, думаете третье. Думаете правильно, но что именно для окружающих неясно. То ли по km нужно групировать, то ли по model?
Ссылку на то как решается задача вам дали. Если не можете написать, то возвращаемся ко второму от ответу в теме, т.е. с вас пример с исходными данными, результат и почему именно так.
...
Рейтинг: 0 / 0
05.02.2014, 22:19:29
    #38551165
Kirill_Gvozdev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
max() и group by
нашел конструкцию, мне подходящую.

Код: plsql
1.
2.
SELECT * FROM t
WHERE km IN (SELECT MAX(km) FROM t GROUP BY model)



Извиняйте за сумбурность мыслей, каша в голове после рабочего дня.
...
Рейтинг: 0 / 0
05.02.2014, 22:31:47
    #38551182
retvizan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
max() и group by
Kirill_Gvozdev,
Не, не подходящая. Если будет 20 разных моделей с одинаковым значением km (равным max(km)), то всех выведет.
...
Рейтинг: 0 / 0
05.02.2014, 22:38:51
    #38551188
Kirill_Gvozdev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
max() и group by
retvizan, действительно выводит все значения с одинаковым km.

Счастье было так близко, уже готовился идти спокойно спать :'(
...
Рейтинг: 0 / 0
05.02.2014, 22:40:36
    #38551190
Kirill_Gvozdev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
max() и group by
retvizan,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT * 
FROM  `t` 
WHERE km
IN (

SELECT MAX( km ) 
FROM t
GROUP BY model
)
GROUP BY km



бугага, профит)))))
...
Рейтинг: 0 / 0
05.02.2014, 22:49:41
    #38551204
retvizan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
max() и group by
Kirill_Gvozdev,

"Утро вечера мудренее".
Перечитайте на свежую голову с утра ссылку, которую я вам ранее давал, чтобы понять - счастье было всего лишь близко.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / max() и group by / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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