我有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
要回答您如何将订单数量添加到数据集中的问题,您可以添加以下命令:
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