У меня проблема с 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);
Это то, что возвращает подзапрос:
Я могу получить AVG_PRICE и MAX (AVG_PRICE). Я могу даже делать инструкции WHERE, такие как:
WHERE AVG_PRICE>20
И это работает. Когда я запускаю свой запрос, хотя получаю код ошибки 1111.
Любая помощь будет принята с благодарностью.
Благодарю.
Вы ищете что-то вроде этого?
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;
HAVING
вместоWHERE
.WHERE
предложениеHAVING
здесь не сработает, хотя и приблизит вас. Вместо этого выньте этот подзапрос иORDER BY AVG_PRICE DESC LIMIT 1
в конце его и повторите (только подзапрос)