Выборка максимального значения основываясь на одинаковых значениях поля

Aqvatarius

Новичок
Доброго времени суток.

Есть таблица в ней данные(что не удевительно:) ), и запрос типа
select `id`,`code`,`name`,`price` from `table` where `some_row`='11213132132' даст:
PHP:
id		code		name		price
-------------------------------------------------------
10		101001100		aaaaa	1058
202		101001110		bbbbb	1058
647		101010		ccccc	647
841		101010010		ddddd	647
1105		101010300		eeeee	30
1268		101010500		fffffffffff	617
1409		101010510		ggggg	617
1550		101011		kkkkk 	647
1804		101011500		lllllllllll	647
-------------------------------------------------------

Как составить sql запрос так, что бы результатом выборки было:
PHP:
-------------------------------------------------------
202	101001110		bbbbb	1058
841	101010010		ddddd	647
1105	101010300		eeeee	30
1409	101010510		ggggg	617
1804	101011500		lllllllllll	647
-------------------------------------------------------
То есть, выбока максимального значения code с группы где одинаковые price.

Прошу помощи.
Пы:Сы: На уровне php+mysq могу
 

Sorc17

Новичок
функция max() и группировка по price.

Сделайте упражнения на селект с этого сайта http://www.sql-ex.ru/ и подобных вопросов больше возникать не будет.
 

Aqvatarius

Новичок
Охотно верю, и ценю Ваше желание меня обучить, а нельзя ли написать сюда просто запрос, и я сделаю выводы?)
 

Avron2

Новичок
Охотно верю, и ценю Ваше желание меня обучить, а нельзя ли написать сюда просто запрос, и я сделаю выводы?)
Если Вы не хотите обучиться чтобы сделать это задание, то когда задание будет сделано за Вас - вы тем более не захотите понять что и как.
 

Aqvatarius

Новичок
Я хочу обучатся, но я не хочу регистрироваться на сайте, и проходить курс обучения, ибо сижу на работе.
 

Aqvatarius

Новичок
Спасибо всем за помощь.... уже сам додумался...
PHP:
select max(`a`.`code`) from (select `code`,`product`,`pro04` from `pro04` where `some_row`='123123') a group by `a`.`pro04`;
 

Avron2

Новичок
Я хочу обучатся, но я не хочу регистрироваться на сайте, и проходить курс обучения, ибо сижу на работе.
А все остальные, по Вашему, бездельничают и думают как за кого-то что-то сделать?
PHP:
select `id`, max(code) as max_code,`name`,`price` from `table`  GROUP BY price
 

Aqvatarius

Новичок
Да, Avron2, Ваш вариант куда проще чем то что пришло мне в голову. Спасибо)
 

Aqvatarius

Новичок
То есть по сути мой вариант
PHP:
select max(`a`.`code`) from (select `code`,`product`,`pro04` from `pro04` where `some_row`='123123') a group by `a`.`pro04`;
правильный?
 

Gas

может по одной?
Aqvatarius
нет, если тебе нужно получить только поле max(`a`.`code`) и pro04, то делай как написал Avron2, но если в том числе и другие поля, например, product, то и вариант Avron'а не подойдёт.
 

Avron2

Новичок
Рабочий вариант. А какое решение было бы оптимальным? Моё?
PHP:
SELECT `id` , code, `name` , `price`
FROM `table` AS t1
WHERE t1.code = (
SELECT max( t2.code )
FROM `table` AS t2
WHERE t1.price = t2.price )
GROUP BY `price`
Результат:
result.jpg

Как составить sql запрос так, что бы результатом выборки было:
PHP:
-------------------------------------------------------
202	101001110		bbbbb	1058
841	101010010		ddddd	647
1105	101010300		eeeee	30
1409	101010510		ggggg	617
1804	101011500		lllllllllll	647
-------------------------------------------------------
Aqvatarius
Вы даже без MySQL неправильный результат получили :)
 
Сверху