如何在 MySQL 中如果另一個列滿足條件而對某一列中的單元格進行求和?
為此,你可以使用聚合函式 SUM() 以及 GROUP BY 子句。我們首先建立一個表 -
mysql> create table DemoTable -> ( -> EmployeeName varchar(20), -> JoiningDate date, -> Salary int -> ); Query OK, 0 rows affected (0.54 sec)
使用 insert 命令在表中插入一些記錄 -
mysql> insert into DemoTable values('David','2019-11-02',400);
Query OK, 1 row affected (0.52 sec)
mysql> insert into DemoTable values('Robert','2018-11-25',100);
Query OK, 1 row affected (0.39 sec)
mysql> insert into DemoTable values('Bob','2019-12-14',600);
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable values('Carol','2019-11-03',300);
Query OK, 1 row affected (0.23 sec)使用 select 語句顯示錶中的所有記錄 -
mysql> select * from DemoTable;
這將會產生以下輸出 -
+--------------+-------------+--------+ | EmployeeName | JoiningDate | Salary | +--------------+-------------+--------+ | David | 2019-11-02 | 400 | | Robert | 2018-11-25 | 100 | | Bob | 2019-12-14 | 600 | | Carol | 2019-11-03 | 300 | +--------------+-------------+--------+ 4 rows in set (0.00 sec)
以下是如果另一個列滿足條件而對某一列中的單元格進行求和的查詢 -
mysql> select year(JoiningDate) as JoiningYear, -> month(JoiningDate) as JoiningMonth, -> sum(Salary) as Total, -> group_concat(EmployeeName) as Name -> from DemoTable -> group by JoiningYear,JoiningMonth;
這將會產生以下輸出 -
+-------------+--------------+-------+-------------+ | JoiningYear | JoiningMonth | Total | Name | +-------------+--------------+-------+-------------+ | 2018 | 11 | 100 | Robert | | 2019 | 11 | 700 | David,Carol | | 2019 | 12 | 600 | Bob | +-------------+--------------+-------+-------------+ 3 rows in set (0.04 sec)
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP