我在使用聚合函数时遇到了解Group By的问题。我没有使用内连接就明白了,但现在我不明白要分组的内容。
这是我的代码。
SELECT ProductName,
Products.ProductNumber,
AVG(WholesalePrice),
AVG(RetailPrice)
FROM Products INNER JOIN ProductVendors
ON Products.ProductNumber = ProductVendors.DaysToDeliver;
正如你所知,我正试图找到平均价格,而且我不知道要分组的内容。我尝试了那里的所有东西分组,没有一个会起作用。有什么建议吗?
以下是错误:列'Products.ProductName'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。
答案 0 :(得分:0)
基本上,对于任何DBMS,您需要GROUP BY
您未执行聚合功能的项目:
SELECT Products.ProductName AS ProductName
,Products.ProductNumber AS ProductNumber
,AVG(Products.WholesalePrice) AS AvgWholesalePrice
,AVG(Products.RetailPrice) AS AvgRetailPrice
FROM Products Products
INNER JOIN ProductVendors Vendors ON Products.ProductNumber = Vendors.DaysToDeliver
GROUP BY Products.ProductName, Products.ProductNumber;
此外,在执行JOIN
时,您应该对表进行适当的别名,然后使用其字段引用别名。它更透明,SQL优化器需要更少的隐式转换,并允许更好的维护。