微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

保存在新列 MySQL 中的 sum(Revenue) 的季度差异

如何解决保存在新列 MySQL 中的 sum(Revenue) 的季度差异

我需要在我的表中添加一个新列,该列将显示新季度的总收入与上一季度的收入总和之间的差值。 我的数据如下所示:

Website       Year          Quarter          Revenue
cosmo.com      2019           4               10
cosmo.com      2020           1               15
cosmo.com      2020           2               5
fashion.com    2019           4               10
fashion.com    2020           1               5
fashion.com    2020           2               20

所需的输出是:

Website       Year          Quarter          Revenue         Difference
cosmo.com      2019           4               10                +5
cosmo.com      2020           1               15                +5
cosmo.com      2020           2               5                 -10
fashion.com    2019           4               10                +10
fashion.com    2020           1               5                 -5
fashion.com    2020           2               20                +15

我曾尝试查看年度差异,但出现语法错误

select *,`Revenue` - lag(`Revenue`) over(order by `Year`) as difference 
from table` 

解决方法

据我所知,您想要的是与上一个季度的差异,而不是年度。那将是:

select t.*,(t.Revenue - lag(t.Revenue) over (partition by website order by Year,quarter)) as difference 
from table t;

注意网站使用 partition by

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。