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

Как да изчислим общата сума в MySQL

Много пъти може да се наложи да изчислите текущата обща или кумулативната сума за конкретна колона, като например продажби. Тъй като в MySQL няма функция за изчисляване на кумулативната сума, трябва да я изпълните чрез SQL заявка. Ето SQL заявка за изчисляване на общата сума в MySQL.

Как да изчислим общата сума в MySQL

Ето как да изчислите общата сума в MySQL. Да приемем, че имате следната таблица, която съдържа данни за ежедневните продажби.

mysql> create table sales(order_date date,sale int);

mysql> insert into sales values('2020-01-01',20),
('2020-01-02',25),('2020-01-03',15),('2020-01-04',30),('2020-01-05',20);

mysql> select * from sales;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-01-01 |   20 |
| 2020-01-02 |   25 |
| 2020-01-03 |   15 |
| 2020-01-04 |   30 |
| 2020-01-05 |   20 |
+------------+------+

Да приемем, че искате да изчислите кумулативната сума на продажбите, така,

+------------+------+-----------------+
| order_date | sale | cumulative_sale |
+------------+------+-----------------+
| 2020-01-01 |   20 |              20 |
| 2020-01-02 |   25 |              45 |
| 2020-01-03 |   15 |              60 |
| 2020-01-04 |   30 |              90 |
| 2020-01-05 |   20 |             110 |
+------------+------+-----------------+

Ето SQL заявката за изчисляване на кумулативната сума в MySQL.

mysql> set @csum := 0;
mysql> select order_date,sale, (@csum := @csum + sale) as cumulative_sale
       from sales
       order by order_date;
+------------+------+-----------------+
| order_date | sale | cumulative_sale |
+------------+------+-----------------+
| 2020-01-01 |   20 |              20 |
| 2020-01-02 |   25 |              45 |
| 2020-01-03 |   15 |              60 |
| 2020-01-04 |   30 |              90 |
| 2020-01-05 |   20 |             110 |
+------------+------+-----------------+

Бонус за четене: Как да създадете обобщена таблица в MySQL

В горната заявка зададохме временна променлива csum на 0. След това за всеки ред я използваме за изчисляване и съхраняване на кумулативната сума.

Моля, имайте предвид, че тази кумулативна сума не се съхранява в нито една колона. Просто се показва в резултата.

Ако искате да съхраните тази стойност, трябва да добавите нова колона към вашата таблица и да използвате клаузата UPDATE, както е показано по-долу.

mysql> alter table sales add column cumulative_sum int;

mysql> set @csum := 0;

mysql> update sales
       set cumulative_sum = (@csum := @csum + sale)
       order by order_date;

mysql> select order_date,sale,cumulative_sum from sales;
+------------+------+----------------+
| order_date | sale | cumulative_sum |
+------------+------+----------------+
| 2020-01-01 |   20 |             20 |
| 2020-01-02 |   25 |             45 |
| 2020-01-03 |   15 |             60 |
| 2020-01-04 |   30 |             90 |
| 2020-01-05 |   20 |            110 |
+------------+------+----------------+

Можете да персонализирате вашата SQL заявка, за да включва филтри, използвайки клауза WHERE или JOINS, както е показано по-долу

mysql> set @csum := 0;
mysql> select order_date,sale, (@csum := @csum + sale) as cumulative_sale
       from sales where <condition>
       order by order_date;

Бонус четене: Как да изчислим медиана в MySQL

Тъй като MySQL не предлага вградена функция за кумулативна сума, можете да използвате горната SQL заявка, за да изчислите общата сума в MySQL.

След като можете да изчислите кумулативната сума в MySQL, можете да използвате инструмент за диаграми, лесно да ги начертаете като линейна диаграма или лента, както е показано по-долу. Ето пример за диаграма, създадена с Ubiq.

Ако искате да създавате диаграми, табла за управление и отчети от MySQL база данни, можете да опитате Ubiq. Предлагаме 14-дневен безплатен пробен период.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на SELECT INTO OUTFILE в MySQL

  2. SQL уникален въпрос за чувствителност на главни и малки букви

  3. Извличане на изображение, съхранено като BLOB в MYSQL DB

  4. Създаване на уеб приложение от нулата с помощта на Python Flask и MySQL:Част 5

  5. Инсталиране на Percona XtraDB Cluster на CentOS 7