我想编写一个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) ;
答案 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;