sql >> Databáze >  >> RDS >> Mysql

Funkce MySQL SELECT pro sčítání aktuálních dat

Tomu se říká kumulativní součet.

V Oracle a PostgreSQL , vypočítá se pomocí funkce okna:

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

Nicméně MySQL to nepodporuje.

V MySQL , můžete jej vypočítat pomocí proměnných relace:

SET @s = 0;

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

nebo čistě na množině, ale méně efektivním způsobem:

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


  1. Vyberte odemčený řádek v Postgresql

  2. Jak mohu sečíst dva výsledky count(*) ve dvou různých tabulkách?

  3. Chybový kód MySQL 1452 Omezení cizího klíče

  4. MySQL limit s proměnnou