mysql - 在SQL中进行行之间的计算

标签 mysql sql

我得到了下表,我想从中填充另一个表 各部门每年的预算减去上一年的预算。

例如2013-2014年财务预算500强:

Year    Department  Budget

2013    Finance      3000
2014    Finance      3500
2015    Finance      4000
2013    Marketing    4500
2014    Marketing    5000
2015    Marketing    5500
2013    Sales        3000
2014    Sales        3500
2015    Sales        4000

我不知道该怎么做。

最佳答案

在大多数现代 SQL 数据库系统中,您可以使用窗口函数。 MySQL 没有窗口函数,但您可以执行自连接将所需的值放在同一行上:

select
  current.year AS year,
  current.department AS department,
  current.budget - previous.budget AS increase
from
  budget current
  JOIN budget previous
    ON current.department = previous.department
      AND current.year = previous.year + 1

请注意,这将省略每个部门的最早年份,因为在这些情况下没有上一年。如果需要的话,可以采取不同的处理方式。

关于mysql - 在SQL中进行行之间的计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29307863/

相关文章:

c# - HTML 文本未格式化

php - 每周编制年度工作规模,无需连续工作两周

SQL 查询查找最后一天使用的代码

sql - Zend_Db 按字段值排序

mysql - 如何使用 exec.Command 在 golang 中执行 Mysql 脚本

mysql - 无法连接,vb.net 和 mysql

php - 复制(更新)同一张表中的某些内容

mysql - 仅当满足特定条件时才将另一个表中的值插入到表中

php - 字段列表中的未知列。

php - 如何列出从 sql 到 html 表的结果