Запрос из mysql с разными значениями одного поля и при этом максимальным другого

Статус
В этой теме нельзя размещать новые ответы.

Avenus

Under Glory Yield
Запрос из mysql с разными значениями одного поля и при этом максимальным другого

Есть данные в таблице 'table' с разными значениями в полях 'rate' и 'name'.
name - тип: varchar, rate - тип: int
Пример:
-------------------------
| id | name | rate |
-------------------------
| 1 | а | 0 |
-------------------------
| 2 | а | 2 |
-------------------------
| 3 | b | 1 |
-------------------------
| 4 | а | 1 |
-------------------------
| 5 | c | 3 |
-------------------------
| 6 | b | 0 |
-------------------------
Подскажите, пожалуйста, как написать запрос для вывода разных значений 'name' только с максимальным значением 'rate':
-------------------------
| id | name | rate |
-------------------------
| 2 | а | 2 |
-------------------------
| 3 | b | 1 |
-------------------------
| 5 | c | 3 |
-------------------------
Сортировать по полю - name.
 

zerkms

TDD infected
Команда форума
вопрос поднимается с завидной регулярностью
примерно в течение последних 1.5 недель был аналогичный
в поиск...
 

Avenus

Under Glory Yield
Хорошо, спасибо!
Поищу :)

-~{}~ 01.07.07 13:34:

Похожего много, но ничего из того, что я находил не работает. Если использовать 'group by name', то выводит только одинаковые значения поля 'name'...
т.е. (из найденного здесь):
SELECT *,MAX(rate) FROM table GROUP BY name
выводит это:
-------------------------
| id | name | rate |
-------------------------
| 2 | а | 2 |
-------------
| 1 | а | 0 |
-------------
 

Фанат

oncle terrible
Команда форума
табличку ты эту сам нарисовал, или из консоли скопировал?
 

Фанат

oncle terrible
Команда форума
zerkms
это, вроде, другая немного тема?
здесь-то, как раз, самая примитивная группировка.
 

Avenus

Under Glory Yield
Да, именно примитивная, но что-то не получается...
из базы с данными
id name rate
5 a 1
2 b 2
3 a 0
4 b 5
1 a 3
по запросу:

select id,name,max(rate) from table group by name

выдает 2 строки:
1 a 3
2 b 2

а мне необходимо получить
1 a 3
4 b 5

:) не разберусь...
 

Фанат

oncle terrible
Команда форума
что такое b-rate?!

-~{}~ 01.07.07 14:29:

короче.
1. разберись с опечатками.
2. код и результат на форум КОПИРУЮТСЯ!

разбираться в результатах твоей самодеятельности, которую ты тут от руки накалякал, и которая не имеет никакого отношения к реальности, никто не будет.

у тебя есть только один результат ответа:
реальный дамп таблицы, реальный запрос и реальный вывод.
если хот одно условие не выполняется - топик закрыт
 

Avenus

Under Glory Yield
SELECT id, name, max(rate)
FROM table
GROUP BY name

результат:

id name max(rate)
1 a 3
2 b 5

Но!
У id=1 rate=3, а у id=2 rate=2
? почему так, ведь rate=5 у id=4
 

Фанат

oncle terrible
Команда форума
потому что
запрос для вывода разных значений 'name' только с максимальным значением 'rate':
ты спрашивал, как тебе вывести NAME, а не id!
а потом час нам морочил голову, подтасовывая результаты выборки!

-~{}~ 01.07.07 14:40:

раз не умеешь задать вопрос - тренируйся делать это самостоятельно.
 

Фанат

oncle terrible
Команда форума
Тема закрыта. Учитесь пользоваться поиском.

Прежде чем задавать вопрос - используйте поиск по форуму и FAQ:
На нахождение готового ответа на свой вопрос Вы потратите меньше своего и чужого времени, чем на создание новой темы.

Поиск по форуму

http://phpclub.ru/faq/
http://phpclub.ru/detail/
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху