带有 VWAP 计算的 SQL 内连接查询

问题描述 投票:0回答:1

我有2张桌子
订单表和订单数量表
[订单价格表][1] [订单数量表][2]
我正在尝试创建一个查询来计算特定日期(例如 2023-01-01)的成交量加权平均价格。成交量加权平均价格的公式为 sum( order_price * order_qty ) / sum(order_qty)
我已经使用内部联接开始查询,因为价格和数量必须位于数据集中才能进行计算。
...

选择* 来自订单_价格 INNER JOIN 订单 ON Order_Prices.OrderID = Order_Quantity.OrderID;

...
我也想将订单数量添加到我的数据集中(位于订单数量表中,(不知道如何执行此操作)以及如何插入数量加权平均值的公式。
任何帮助将不胜感激。
[1]:https://i.sstatic.net/M69U7oBp.png [2]:https://i.sstatic.net/phL2ywfg.png

sql math inner-join
1个回答
0
投票

要回答您如何将订单数量添加到数据集中的问题,您可以添加以下命令:

oq-quantity AS order_quantity

要插入体积加权平均值的公式,您需要在选择数据时添加另一个命令:

SELECT
SUM(oq.price * oq.quantity) / SUM(oq.quantity) AS VWAP

使用您的示例,您的查询将是:

SELECT
    SUM(oq.price * oq.quantity) / SUM(oq.quantity) AS VWAP
FROM Order_Prices op
INNER JOIN Orders o ON op.OrderID = o.OrderID
INNER JOIN Order_Quantity oq ON o.OrderID = oq.OrderID
WHERE o.order_date = '2023-01-01'
GROUP BY o.order_date;

可以在这里找到对此的很好的解释https://www.interviewquery.com/p/weighted-average-sql-guide

© www.soinside.com 2019 - 2024. All rights reserved.