我目前正在为我在SQL中使用Northwind数据库的数据库类开发实验室。我似乎无法弄清楚的一些问题是
列出单价大于的所有产品的名称 平均单价。
我认为它看起来像
Select Product Name From Products Where UnitPrice > AVG(UnitPrice)
但它似乎并不接受这一点。
另外,另一个问题是
列出单价最低的产品名称
我以为它会是
Select ProductName From Product Where MIN(UnitPrice)
这些都不起作用,我非常沮丧,请帮忙!
答案 0 :(得分:2)
您不能将组函数放入WHERE子句中。可以这样想:WHERE子句中的表达式必须只引用表的一行(或者来自多个表的行的连接)。但表达式不能考虑一组行。
相反,您可以使用子查询来获得平均价格:
Select p.ProductName
From Products As p
Cross Join (Select AVG(UnitPrice) AS avg_unit_price From Products) As a
Where p.UnitPrice > a.avg_unit_price
答案 1 :(得分:1)
列出单价高于平均单价的所有产品的名称:
Select p.ProductName From Products p Where p.UnitPrice > (Select AVG(UnitPrice) From Products)
列出单价最低的产品名称: (返回所有具有最少UnitPrice的产品)
Select p.ProductName From Products p Where p.UnitPrice = (Select MIN(UnitPrice) From Products)
答案 2 :(得分:0)
Select a.[Product Name]
From Products a, (select AVG(UnitPrice) as AvgUnitPrice from Products) b
Where a.UnitPrice > b.AvgUnitPrice
或
Select a.[Product Name]
From Products a
Where a.UnitPrice > (select AVG(UnitPrice) as AvgUnitPrice from Products)
答案 3 :(得分:0)
Declare @Avg Decimal
Select @Avg = Sum(UnitPrice) / Count(UnitPrice)
From Products
Select A.ProductName
From Products
Where UnitPrice > @Avg