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

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

MySQL няма функция за изчисляване на кумулативна сума, известна още като текуща сума. Трябва да напишете SQL заявка, за да изчислите кумулативната сума в MySQL. Така че нека разгледаме 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 |
+------------+------+-----------------+

Бонус за четене: Как да свържете множество редове в едно поле в MySQL

Ето 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 |
+------------+------+-----------------+

В горната заявка първо зададохме дефинирана от потребителя променлива csum на 0. Използваме я за съхраняване на текущата сума на всеки ред. Важно е да се отбележи, че csum не се съхранява в никоя таблица. Използва се просто за показване на текущите общи стойности.

Ако искате да съхраните тази текуща обща сума, можете да добавите нова колона към вашата таблица и да използвате клаузата 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 |
+------------+------+----------------+

Бонус четене: Как да добавите общ ред в MySQL

Можете също да персонализирате вашата 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 не предлага никаква вградена функция за изпълнение на общата сума, можете да използвате горната SQL заявка за изпълнение на общата сума в MySQL. Можете също да използвате MONTH(дата_на_поръчка) вместо дата_на_поръчка по-горе, ако искате да напишете SQL за кумулативна сума по месеци.

След като изчислите общия обем, можете да използвате инструмент за диаграми, за да начертаете тези данни в линейна диаграма и да ги споделите с вашия екип. Ето пример за линейна диаграма, която показва текущата сума, създадена с 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. Създайте система за бюлетин с PHP и MySQL

  2. Какви са практическите разлики между `ЗАМЕНИ` и `ВМЪКВАНЕ... ПРИ АКТУАЛИЗИРАНЕ НА ДУБЛИКАТ КЛЮЧ` в MySQL?

  3. MySQL DELETE FROM с подзаявка като условие

  4. Добавяне на водеща нула към някои стойности в колона в MySQL

  5. Как да получите текущата дата в MySQL