Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Funkcja MySQL SELECT do sumowania aktualnych danych

Nazywa się to sumą skumulowaną.

W Oracle i PostgreSQL , jest obliczana za pomocą funkcji okna:

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

Jednak MySQL nie obsługuje tego.

W MySQL , możesz to obliczyć za pomocą zmiennych sesji:

SET @s = 0;

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

lub czysto oparty na zbiorach, ale mniej wydajny sposób:

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. kolejność wykonywania w środowisku webowym

  2. Zapytanie SQL do wybrania, aż SUMA (liczba_użytkowników) osiągnie 1000

  3. Nie można połączyć się z lokalnym serwerem MySQL przez gniazdo '/tmp/mysql.sock

  4. wyświetlanie danych z sql po kliknięciu na mapę svg

  5. Wybierz 10 najlepszych rekordów dla każdej kategorii w MySQL