我有这样的:SQL - 嵌套聚集
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。
我错过了什么?
我有这样的:SQL - 嵌套聚集
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中的最大平均)
这样做,谢谢。我知道这会很简单。 – madtroll 2013-03-06 04:51:46
也许它可能会更简单,如果你可以告诉我你正在使用':D'的数据库服务器 – 2013-03-06 05:34:13
什么[RDBMS](http://en.wikipedia.org/wiki/Relational_database_management_system)您正在使用? 'RDBMS'代表*关系数据库管理系统*。 'RDBMS是SQL'的基础,并且适用于所有现代数据库系统,如MS SQL Server,IBM DB2,Oracle,MySQL等...... – 2013-03-06 04:19:30