sql - 使用空日期运行总计 - SQL
问题描述
我想计算仓库中物品的运行库存总数,但也包括没有移动的周数。示例数据如下所示。
Year WeekNumber Category Units in
2019 1 A 10
2019 1 B 20
2019 2 A 15
2019 2 B 10
2019 3 A 15
在第 3 周,B 类没有“单位”,但我仍然想显示该类别的运行总数。
我编写了以下代码,适用于 A 类,但在第 3 周,它不显示 B 类运行总数。
sum(units in) over
(partition by category order by year, weeknumber)
预期成绩
Year WeekNumber Category Running Total
2019 1 A 10
2019 1 B 20
2019 2 A 25
2019 2 B 30
2019 3 A 40
2019 3 B 30
有什么建议么?
谢谢 afk
解决方案
我认为您希望 across join
生成所有结果,然后 aleft join
引入数据。然后使用窗口函数:
select yw.year, yw.weeknumber, c.category, t.units_in,
sum(t.units_in) over (partition by c.category order by yw.year, yw.weeknumber) as running_units_in
from (select distinct category from t) c cross join
(select distinct year, weeknumber from t) yw left join
t
on t.category = c.category and t.year = yw.year and t.weeknumber = yw.weeknumber;
注意:与使用select distinct
.
推荐阅读
- xml - 如何在 xsl 中实现附加赋值运算符,即“+=”
- python - Python face_recognition 为什么不能识别卡通图像?
- node.js - 如何使用 Node JS 获取 PostgreSQL 转储数据库文件
- c# - Sublime text 3 - 为特定字符着色 C#
- javascript - 在 Nuxt 商店(vuex)中使用 window.open
- java - BitmapToBase64 Android Studio
- python-3.x - 当变音符号“ä,ö,ü”时python3 urllib无法下载url
- hyper-v - Hyper-V 反亲和性
- python - 币安 API 'allOrders' (HMAC sha256) 错误 1022
- c++ - 移动带有新位置的 std::string 后的内存泄漏