每行将一列中的行添加到另一列中

afdcj2ne  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(405)

我正在尝试创建一个查询,该查询创建一个列,将每行上一列的所有行值相加。我试过求和和计数,但这并没有给我想要的结果。我该如何解决这个问题?

+----+------+-----+
| id |amount|total|
+----+------+-----+
| 1  | 10   | 10  |
| 2  | 20   | 30  |
| 3  | 15   | 45  |
| 4  | 30   | 75  |
+----+------+-----+
uxhixvfz

uxhixvfz1#

这是一个滚动和问题。在mysql 8.0.2及更高版本中,您可以使用带框架的窗口函数来解决这个问题。在旧版本中,我们可以使用用户定义的会话变量执行相同的操作。
尝试:

SELECT 
  dt.id, 
  dt.amount, 
  @tot := @tot + dt.amount AS total 
FROM 
(
  SELECT
    id, 
    amount
  FROM your_table_name 
  ORDER BY id
) AS dt 
CROSS JOIN (SELECT @tot := 0) AS user_init

相关问题