我有这个:
SELECT BRAND_ID, CAST (ROUND (AVG(PROD_PRICE), 2) AS NUMERIC (9, 2)) AS 'LARGEST AVERAGE'
FROM LGPRODUCT
GROUP BY BRAND_ID
它显示了每个品牌的一堆平均价格,就像它应该做的那样。
但是如果我只想显示最大的数字呢?还是最低的?
我一直在尝试以各种不同的方式使用 MAX,并尝试使用 WHERE 和 HAVING。
我错过了什么?
由于您提到了RDBMS
,因此下面的查询将适用于大多数 rdbms。
SELECT BRAND_ID,
CAST (ROUND (AVG(PROD_PRICE), 2) AS NUMERIC (9, 2)) AS 'LARGEST AVERAGE'
FROM LGPRODUCT
GROUP BY BRAND_ID
HAVING CAST (ROUND (AVG(PROD_PRICE), 2) AS NUMERIC (9, 2)) =
(
SELECT MAX(xx)
FROM
(
SELECT CAST (ROUND (AVG(PROD_PRICE), 2) AS NUMERIC (9, 2)) as xx
FROM LGPRODUCT
GROUP BY BRAND_ID
) s
)
上面查询的一个优点是它可以处理重复项(BRAND_ID
s 具有最大的平均值)