如何选择单价高于平均单价的所有商品名?

时间:2017-07-09 23:58:43

标签: sql

我想编写一个SQL语句,从数据库中选择单位价格大于平均单价的所有产品名称。我需要写一个子查询。

我尝试了这种方式并且我一直收到错误"来自关键字未找到预期位置"。

SELECT 
    PRODUCTID, Productname, unitprice
FROM 
    Products 
WHERE 
    unitprice IN (SELECT unitprice > AVG(unitprice) FROM Products);

然后我添加了括号,我不断收到另一个错误,"错过右括号":

SELECT 
    PRODUCTID, Productname, unitprice
FROM 
    Products 
WHERE 
    unitprice IN (SELECT (unitprice >  AVG(unitprice)) FROM Products) ;

2 个答案:

答案 0 :(得分:2)

SELECT PRODUCTID, Productname, unitprice
FROM Products 
WHERE unitprice > (SELECT AVG(unitprice) FROM Products)

答案 1 :(得分:0)

在几乎所有数据库中,最好的方法是使用窗口函数;

SELECT PRODUCTID, Productname, unitprice
FROM (SELECT p.*, AVG(unitprice) OVER () as avg_up
      FROM Products p
     ) p
WHERE unitprice > avg_up;