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,所以没有意识到窗口的功能。伟大的方式来聚合聚合。 –