1
我有一個order_lines
表,其中有order_id
和extended_price
列。我想知道所有訂單的延期價格總和高於平均價格的訂單。這是我得到的查詢:在嵌套子查詢中訪問聚合
SELECT order_id, SUM(extended_price) AS "sumtotal"
FROM order_lines e
GROUP BY order_id
HAVING SUM(extended_price) >
(SELECT AVG(c.sumtotal) AS "avgtotal"
FROM
(SELECT order_id, SUM(extended_price) AS "sumtotal"
FROM order_lines
GROUP BY order_id) c
)
ORDER BY sumtotal
正如我們可以看到我有一個子查詢c
來得到被用來計算avgtotal
的sumtotal
。但是我運行的查詢與我的主查詢相同,以再次計算sumtotal
並與avgtotal
進行比較。有沒有更好的方法來使用標準的SQL功能呢?我正在使用PostgreSQL。
謝謝!我現在很少玩SQL,所以沒有意識到窗口的功能。偉大的方式來聚合聚合。 –