【发布时间】:2014-03-11 00:13:33
【问题描述】:
我正在尝试编写一个查询,以查找平均产品价格最高的品牌的品牌 ID、品牌名称、品牌类型和产品平均价格。这是我得到的:
SELECT LGBrand.Brand_ID, Brand_Name, Brand_Type, MAX(AVG(Prod_Price))
AS AvgPrice
FROM LGProduct, LGBrand
GROUP BY LGBrand.Brand_ID, Brand_Name, Brand_Type
ORDER BY AvgPrice DESC
我对 SQL 很陌生。之前我有没有“MAX”命令的相同代码,但它带回了输出中所有品牌的平均值。
不太清楚该去哪里。
【问题讨论】:
-
您能解释一下您要做什么吗?如果您使用相同的分组,则不能有 MAX(AVG(price)),如果平均值为 5,则最小值和最大值也是 5。您是否要获得平均价格和最高价格?或者你想要按品牌的平均价格,然后是平均品牌的最大结果?请详细说明预期结果。
-
另外,你为什么要交叉加入 LGProduct 和 LGBrand?我很确定你想在那里真正加入。另外,不要在 FROM 子句中使用那种古老的逗号(“,”)语法,它只会导致意外的交叉连接。请改用显式
FROM..JOIN..语法。 -
预期结果应该是表格中的一行信息,保持产品平均价格最高的品牌名称。
标签: sql-server sql-server-2012