2017-07-09 13 views
0

単価が平均単価よりも高いデータベースからすべての製品名を選択する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) ; 

答えて

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

を、最良の方法は、ウィンドウ関数を使用することです。

SELECT PRODUCTID, Productname, unitprice 
FROM (SELECT p.*, AVG(unitprice) OVER() as avg_up 
     FROM Products p 
    ) p 
WHERE unitprice > avg_up; 
関連する問題