mysql - 如何根据复杂规则创建 SQL?
问题描述
我有 3 列(id、date、amount)并试图计算第 4 列(calculated_column)。
如何创建 SQL 查询以执行以下操作:
需要计算的方式是查看 ID(例如 1)并查看该月的所有相同 ID(例如,对于第一次出现 - 1-Sep,它应该计算为 5,对于第二次出现 - 这将是 5+6 =11 -> 从该月开始的所有金额,包括该金额)。
然后在下个月(10 月) - 它会发现 id=1 的第一次出现并将 3 存储在计算的_column 中,对于 10 月的 id=1 的第二次出现,它将从该月初开始对相同的 id 进行求和(3+ 2=5)
解决方案
假设我理解正确,我会建议一个相关的子查询,例如:
select t.*,
(
select sum(u.amount) from table1 u
where
u.id = t.id and
date_format(u.date, '%Y-%m') = date_format(t.date, '%Y-%m') and u.date <= t.date
) as calculated_column
from table1 t
(更改表名table1
以适合您的数据)
推荐阅读
- javascript - 如果图像未加载,则替换跨度内容
- salesforce - 闪电组件中 createrecordevent 或 navigationlocation 上的 saveurl
- docusignapi - 自定义文本选项卡宽度/高度
- python - 如何使用databricks中的pyspark将所有行数据从spark数据帧获取到文件
- angular - 部分生成 Open Api / Swagger 代码
- javascript - 这个斐波那契实现的时间复杂度是多少?
- html - woocommerce 的 Apple Pay 按钮样式
- javascript - 如何在反应中将参数传递给事件侦听器
- android - 在我朋友的安卓设备上进行颤振 apk 测试
- c# - 如何转换普通字符串并使用“n0”文本格式