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

Utwórz kolumnę sumy skumulowanej w MySQL

Korzystając ze skorelowanego zapytania:

  SELECT t.id,
         t.count,
         (SELECT SUM(x.count)
            FROM TABLE x
           WHERE x.id <= t.id) AS cumulative_sum
    FROM TABLE t
ORDER BY t.id

Korzystanie ze zmiennych MySQL:

  SELECT t.id,
         t.count,
         @running_total := @running_total + t.count AS cumulative_sum
    FROM TABLE t
    JOIN (SELECT @running_total := 0) r
ORDER BY t.id

Uwaga:

  • JOIN (SELECT @running_total := 0) r jest sprzężeniem krzyżowym i umożliwia deklarację zmiennych bez konieczności oddzielnego SET Komenda.
  • Alias ​​tabeli, r , jest wymagany przez MySQL dla każdego podzapytania/tabeli pochodnej/widoku wbudowanego

Zastrzeżenia:

  • specyficzne dla MySQL; nieprzenośne do innych baz danych
  • ORDER BY jest ważne; zapewnia, że ​​kolejność pasuje do OP i może mieć większe implikacje dla bardziej skomplikowanego użycia zmiennych (np. funkcjonalność pseudo-ROW_NUMBER/RANK, której brakuje w MySQL)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL – MariaDB – pisanie pierwszej procedury przechowywanej

  2. WYBIERZ * Z wielu tabel. MySQL

  3. Jak włączyć pamięć podręczną zapytań MySQL?

  4. Czy mysql ma odpowiednik funkcji analitycznych Oracle?

  5. Zrozumienie dziennika audytu ProxySQL