表:主キーが強調表示されています
- customer(customer_id、f_name、l_name、tel_no、addr、nic、city)
- product(product_id、name、description、price、sales_tax)
- branch(branch_id、name、tel_no、addr、city)
- orders(order_id、customer_id、order_date、branch_id)
- order_product(order_id、product_id、quantity)
これは私のクエリの非常に単純化されたバージョンです:
SELECT customer_id, SUM(quantity) AS avg_quantity
FROM orders,order_product
WHERE orders.order_id = order_product.order_id
GROUP BY customer_id
HAVING SUM(quantity) > (SELECT AVG(no_quantity)
FROM(
SELECT customer_id, SUM(quantity) AS no_quantity
FROM orders,order_product
WHERE orders.order_id = order_product.order_id
GROUP BY customer_id))
2つのサブクエリがあります。クエリの実行中に結果セットを一時的に保存したいと思います。私はこれを行うSQLの例を見てきました:
(SELECT * FROM orders WHERE branch_id = 4) AS tempone
結果セットを保存して、サブクエリの上位レベルで使用できるようにします。上記のクエリは、OracleSQLDeveloperでは実行されません。
ERROR : ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
一時テーブルは使いたくない。すでにWITHAS句を試しましたが、20分以上かかるように、クエリの実行に時間がかかりすぎます。どうしてか分かりません