SQL 標準では、二重引用符は「区切り識別子」を囲むものと見なされます。つまり、二重引用符は、内部の名前が列またはテーブル名、またはその付近であることを示します。文字列を一重引用符で囲む必要があります。
Unix ベースの DBMS の多くは、二重引用符で囲まれた文字列に対してかなり柔軟です。明らかに、使用しているものはそうではないか、そのように構成されていません。
FROM computer, order
また、表記の使用も避ける必要があります。非常に古いコードを読む場合に備えて、それが存在することを知っておく必要がありますが、SQL では常に明示的な JOIN 表記を使用する必要があります。したがって、結合が必要な場合は、次のように記述する必要があります。
SELECT order.orderid, AVG(order.quantity) AS AvgDesktopsSold
FROM computer
JOIN order ON computer.computerid = order.computerid
WHERE order.type_pc = 'desktop';
GROUP BY 句も使用する必要があります。非集計列は、GROUP BY 句に含める必要があります。
SELECT order.orderid, AVG(order.quantity) AS AvgDesktopsSold
FROM computer
JOIN order ON computer.computerid = order.computerid
WHERE order.type_pc = 'desktop'
GROUP BY order.orderid;
ただし、Computer テーブル (デスクトップ テーブルやラップトップ テーブルはもちろん) の列を使用していないため、JOIN も必要ありません。
SELECT orderid, AVG(quantity) AS AvgDesktopsSold
FROM order
WHERE type_pc = 'desktop'
GROUP BY orderid;
これで、「デスクトップ用の注文ごとのデスクトップの平均数」の答えが得られますが、その平均は数量でもあります。orderid
したがって、 select-list や GROUP BY 句は必要ありません。
SELECT AVG(quantity) AS AvgDesktopsSold
FROM order
WHERE type_pc = 'desktop';