SQL:使用子查询比较平均值

时间:2012-11-13 08:58:17

标签: sql

我一直在尝试设置此查询。

SELECT P.ProductNo,P.Description, AVG(OrderLine.ActualPrice)
FROM Product P
INNER JOIN OrderLine
     ON OrderLine.ProductNo = P.ProductNo
WHERE AVG(ActualPrice) > 
                 (SELECT AVG(ActualPrice)
                          FROM OrderLine)

我的目标是将产品的平均实际价格与所有产品的平均价格进行比较。但我似乎没有让它发挥作用。我在哪里错了?

1 个答案:

答案 0 :(得分:3)

  • 使用GROUP BY
  • 使用汇总条件时,请使用HAVING代替WHERE

查询,

SELECT  P.ProductNo, P.Description, AVG(OrderLine.ActualPrice)
FROM    Product P
        INNER JOIN OrderLine
              ON OrderLine.ProductNo = P.ProductNo
GROUP BY P.ProductNo, P.Description
HAVING AVG(ActualPrice) > (SELECT AVG(ActualPrice)  FROM OrderLine)