我正在尝试创建一个查询,该查询创建一个列,将每行上一列的所有行值相加。我试过求和和计数,但这并没有给我想要的结果。我该如何解决这个问题?
+----+------+-----+ | id |amount|total| +----+------+-----+ | 1 | 10 | 10 | | 2 | 20 | 30 | | 3 | 15 | 45 | | 4 | 30 | 75 | +----+------+-----+
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
1条答案
按热度按时间uxhixvfz1#
这是一个滚动和问题。在mysql 8.0.2及更高版本中,您可以使用带框架的窗口函数来解决这个问题。在旧版本中,我们可以使用用户定义的会话变量执行相同的操作。
尝试: