mysql - 在 MySQL 中创建渐进求和列

标签 mysql

我需要使用mysql显示progressive_total。

我有一个如下所示的表格:

id    value                    cumulative_total
 1    100                            100
 2    150                            250
 3    200                            450 
 4    300                            750

我想添加一个名为progressive_total的新列,因此表格将如下所示:

id    value          Progressive_total          cumulative_total
 1    100                 -                          100
 2    150                100                         250
 3    200                250                         450 
 4    300                450                         750

我使用下面的 mysql 查询来显示累计总数:

SELECT t.id, t.value,
  (SELECT SUM(x.value) FROM house_details x WHERE x.id <= t.id) AS cumulative_total
FROM house_details t
WHERE t.income IS NOT NULL AND t.income!= '' AND YEAR(t.cdate) = YEAR(CURRENT_DATE())
ORDER BY t.id

上面的查询工作正常并获取cumulative_total。但我也想显示progressive_total,就像我在示例中给出的那样。

最佳答案

SELECT t.id, t.value,
  IFNULL((SELECT SUM(x.value) FROM house_details x WHERE x.id < t.id), '-') AS progressive_total,
  (SELECT SUM(x.value) FROM house_details x WHERE x.id <= t.id) AS cumulative_total
FROM house_details t
WHERE t.income IS NOT NULL AND t.income!= '' AND YEAR(t.cdate) = YEAR(CURRENT_DATE())
ORDER BY t.id

关于mysql - 在 MySQL 中创建渐进求和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47386756/

相关文章:

php - 具有 MySQL 远程访问权限的移动应用程序

mysql - 时间戳和mysql

mysql - 将表格连接到自身以查找一个接一个购买的产品

带有列名的 PHP MySQL 表到 CSV

php 包含数组 vs mysql 查询 : good idea?

mysql - 系统范围的权限问题

mysql - 无法更新表中的单个列值

mysql - 编写 SQL 查询以查找至少出现 3 次的所有数字

javascript - 使用单个查询将多条记录插入到 webSQL 表中,数据来自对象数组

php - $_SESSION 不在页面之间传递值 php