所以我想要做什麼:如何在沒有子查詢的情況下重寫此查詢?
我有一個表有一些商店的一些商品的價格,我想要做的是找到從該商店出售的所有商品的平均價格,並且在店內銷售的所有類似物品的總和。
我的欄目有:
- ITEM_NO
- 分支
- 總金額
什麼是真正重要的是,我必須避免子查詢,所以我不能做這樣的事情:
SELECT DISTINCT branch AS postcode, item_no, avg_price
FROM Prices
NATURAL JOIN (SELECT branch, AVG(totalamount) avg_price FROM Prices GROUP BY branch) av
WHERE sum > avg_price ORDER BY turnover DESC , branch;
這正是我想要做的事情,但我必須做到沒有子查詢。
編輯1個問題:
在那裏派生和臨時表之間的差異?所以對於賦值,我不允許使用子查詢或臨時表,所以我的答案是否有這兩個?
對於每個分支的平均價格,您可以使用自聯接和GROUP BY,而不是一個子查詢。但是我不清楚剩下的事情...... item_no和avg_turnover必須分支到什麼關係?主要關鍵是什麼?我們可以看到架構嗎? – bobince 2010-11-12 01:35:16
@Sam ...只是注意:你使用的是所謂的派生表。子查詢是Select語句作爲where或Column的一部分。將派生表視爲從非索引視圖中進行選擇。 – 2010-11-12 01:41:27
對於什麼數據庫?雖然它可能是MySQL ... – 2010-11-12 02:08:56