sql - 窗口函数未正确按列对分区求和
问题描述
我有两个数据集:发货和账单。我不知道如何在 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 是标准。
解决方案
弄清楚了!问题是 bills 表中有任何大于 1000 的数字的逗号。我从表中删除了格式,并且窗口函数现在可以正常运行。 正确的输出
推荐阅读
- flutter - ModalRoute.of(context).settings.arguments 返回 Null
- haskell - Haskell - 从无限的数据列表中提取参数
- ocaml - Irmin Linked_log 可以与 Git.FS 后端一起使用吗?
- asp.net - 为什么我在 Web 服务器上出现内部服务器错误 (500) (asp.net)
- r - 如何检查 R 中多列中的值(在 SAS 中查找等效数组)?
- python - BeautifulSoup.find_all 没有找到所有东西——Python
- python - 如何将坐标从文本文件导入 Python 程序并使用 Pyautogui 单击这些坐标
- pytorch - 使用对抗样本放大两个类之间的差异
- python - pandas 的合并函数生成的行数多于这两个数据帧行的总和
- joomla - 尝试应用过滤器时在joomla中获取()方法返回null