postgresql - postgresql表中的累积和
问题描述
我有一个有 3 列的表。姓名、标记和 School_day。我想拿30天的逐日累积分数。我在下面尝试过。
select sum(Mark), Name from Table1
where School_day between '2020-06-15'::date -29 and '2020-06-15'::date
group by Name
但我想在一个日期期间运行它,而不是每天运行它。
我在下面尝试过,但它没有给出正确的数字。
select sum(Mark), Name, School_day from Table1
where between School_day-29 and School_day
group by Name, School_day
order by School_day
解决方案
请试试这个,如果您对它的工作原理有疑问,请告诉我。
select Name, School_day,
sum(Mark) over (partition by Name
order by School_day)
from Table1
where now() - School_day < interval '29 days'
order by Name, School_day;
推荐阅读
- android - 带有 FTS4 的 Android 房间实体不会创建带有“rowid”列的表
- jenkins - 如何在 Jenkins 中限制整个管道
- ios - 如何使用 Azure DevOps 增加 xcode 项目的内部版本号
- ruby-on-rails - Facebook omniauth redirect_to user_steps_path
- r - 使用 plm 对智能电表进行面板分析
- python - 如何从 yuv 框架中获取形状(宽度、高度、3)的额外尺寸值
- android - React Native:Android端的onPress以某种方式触发onNavigationStateChange
- google-apps-script - 无法在“为当前用户安装”配置下测试插件(即 AuthMode.NONE)
- json - 如何使用 linux shell 脚本将行分隔的 JSON 拆分为多个文件
- javascript - 如何在手风琴上创建打开和关闭状态?