首页 > 解决方案 > 窗口函数未正确按列对分区求和

问题描述

我有两个数据集:发货和账单。我不知道如何在 StackOverflow 上粘贴 csv 表的摘录,所以这里有图片。

出货量

出货量表摘录

票据

账单表摘录

我正在尝试使用以下查询运行一个窗口函数,该函数通过 shipping.id 对所有实际金额求和:

SELECT 
    *
    , sum(actual_amount) OVER
         (PARTITION BY shipments.shipment_id) as costs
FROM shipments JOIN bills ON shipments.shipment_id = bills.shipment_id

当我运行此查询时,成本列显示不正确的总和:

查询输出

cost 列仅对每个 shipping_id 的最后两个 actual_amount 求和,并且没有正确求和。我觉得我在这里缺少一些基本的东西。我基本上是在尝试在 SQL 中创建一个 Excel SUMIF 函数,其中 actual_amount 是总和范围,shipment_id 是标准。

标签: sqlsqlitewindow

解决方案


弄清楚了!问题是 bills 表中有任何大于 1000 的数字的逗号。我从表中删除了格式,并且窗口函数现在可以正常运行。 正确的输出


推荐阅读