Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL функция SELECT за сумиране на текущите данни

Това се нарича кумулативна сума.

В Oracle и PostgreSQL , се изчислява с помощта на прозоречна функция:

SELECT  id, val, SUM() OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
FROM    mytable

Въпреки това, MySQL не го поддържа.

В MySQL , можете да го изчислите с помощта на променливи на сесията:

SET @s = 0;

SELECT  id, val, @s := @s + val
FROM    mytable
ORDER BY
        id
;

или по чист набор, но по-малко ефективен начин:

SELECT  t1.id, t1.val, SUM(t2.val)
FROM    mytable t1
JOIN    mytable t2
ON      t2.id <= t1.id
GROUP BY
        t1.id
;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Python Pandas записват в sql с NaN стойности

  2. Присъединете няколко колони от една таблица към една колона от друга таблица

  3. Как да разбера размера на индексите в MySQL

  4. Как мога да получа външните ключове на таблица в mysql

  5. SQL ограничение SELECT, но не JOIN