我需要编写一个查询,以显示产品平均价格最高的品牌的品牌ID、品牌名称、品牌类型和产品平均价格
我可以通过输入获得所有品牌的平均价格:
SQL> SELECT LGPRODUCT.BRAND_ID, BRAND_NAME, BRAND_TYPE, ROUND(AVG(PROD_PRICE),2)
FROM BOFF.LGPRODUCT, BOFF.LGBRAND
WHERE LGPRODUCT.BRAND_ID = LGBRAND.BRAND_ID
GROUP BY LGPRODUCT.BRAND_ID, BRAND_NAME, BRAND_TYPE
ORDER BY LGPRODUCT.BRAND_ID;
但是如果我输入ROUND(MAX(AVG(PROD_PRICE)),2)我得到一个错误,有什么建议吗?
2条答案
按热度按时间z9ju0rcb1#
您可以使用窗口函数
rank
根据平均值标记排名,然后过滤以获得排名最高的行:如果您必须使用
having
,请尝试:9ceoxa922#
您会得到错误,因为您不能在SQL中嵌套聚合函数。
使用此命令获取带有
max_avg_prod_price
的品牌,而不是: