Не удается найти максимальное среднее в запросе MySQL

0

У меня проблема с SQL-запросом.

По сути, я пытаюсь найти максимальное среднее значение для группы.

Вот что я написал:

SELECT *
FROM (SELECT BRAND_NAME AS AVG_BRAND, AVG(PROD_PRICE) 
AS AVG_PRICE FROM LGPRODUCT AS PROD, LGBRAND AS BRAND 
WHERE PROD.BRAND_ID=BRAND.BRAND_ID GROUP BY PROD.BRAND_ID) AS AVG_GROUP
WHERE AVG_PRICE=MAX(AVG_PRICE);

Это то, что возвращает подзапрос:

Изображение 174551

Я могу получить AVG_PRICE и MAX (AVG_PRICE). Я могу даже делать инструкции WHERE, такие как:

WHERE AVG_PRICE>20

И это работает. Когда я запускаю свой запрос, хотя получаю код ошибки 1111.

Любая помощь будет принята с благодарностью.

Благодарю.

  • 0
    Используйте HAVING вместо WHERE .
  • 0
    Простое перемещение этого WHERE предложение HAVING здесь не сработает, хотя и приблизит вас. Вместо этого выньте этот подзапрос и ORDER BY AVG_PRICE DESC LIMIT 1 в конце его и повторите (только подзапрос)
Показать ещё 1 комментарий
Теги:

1 ответ

1

Вы ищете что-то вроде этого?

SELECT BRAND_NAME AS AVG_BRAND, AVG(PROD_PRICE) AS AVG_PRICE
FROM LGPRODUCT PROD JOIN
     LGBRAND BRAND 
     ON PROD.BRAND_ID = BRAND.BRAND_ID
GROUP BY PROD.BRAND_ID
ORDER BY AVG_PRICE DESC
LIMIT 1;
  • 0
    Подбери это до того, как упал Мьёльнир Бармара. +1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню