SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 30.04.2010 11:38:25

Elvis
Участник
Зарегистрирован: 30.04.2010
Сообщений: 3

GROUP BY

Доброе время суток, есть вопрос очень бы хотелось увидеть решение но без подзапросов если такое возможно вообще в данном случае
есть обычная таблица для хранения товаров . ID, rating, catID, name , как выбрать  ID товаров c максимальным рейтингом по каждой категории

у меня запрос примерно такого вида :

SELECT max(rating), name, categoryID,  productID  FROM products  WHERE rating is NOT NULL  GROUP BY categoryID

он группирует товары по категориям и выводи максимальный рейтинг но вот как получить ещё и ID товара с этим максимальным рейтингом?

жду помощи спасибо заранее всем кто откликнется !

Неактивен

 

#2 30.04.2010 17:13:43

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: GROUP BY

Без подзапросов, боюсь, не получится: задачка и так не корректно поставлена (например,
какой ID следует выводить, если максимальны две строки?). С подзапросом — например,
как-то так:

SELECT p.*
FROM products p,
  (SELECT max(rating) AS rating, categoryID
  FROM products
  GROUP BY 2) pr
WHERE p.rating = pr.rating AND p.categoryID = pr.categoryID;

Неактивен

 

#3 07.05.2010 12:52:24

Elvis
Участник
Зарегистрирован: 30.04.2010
Сообщений: 3

Re: GROUP BY

Спасибо ;) да так оно заработает спасибо я так тоже мыслил если с подзапросом,  извиняюсь за не корректную постановку задачи, в общем нужен ID товара с максимальным рейтингом в определённой категории, т.е ID товара у которого максимальный рейтинг

Неактивен

 

#4 08.05.2010 13:27:09

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: GROUP BY

А мой запрос разве не это выводит?

Неактивен

 

#5 08.05.2010 22:34:43

Elvis
Участник
Зарегистрирован: 30.04.2010
Сообщений: 3

Re: GROUP BY

выводит правильно данные те что нужно  все отлично, просто моя мысль использовать без подзапросов не имеет решения это я и хотел обсудить smile спасибо !

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson