在数据库操作中常常会将某一列的具有相似性质的数据进行求和,昨天在做的项目中遇到了。 后来请教了一下自己又摸索了一下,得出了解决方案,那就是 分组求和。 需求:将某列数据求和 例子:数据库内容为:
根据 record_type 进行分组再求和,也就是将 1、2、3 三种类型进行分组,所以结果预期为三行
再一种是根据 record_date 来分组,由于日期有两组,故预期分组也为两组,结果为同一日期的 c、d 列数据相加
总结:当需要进行对某一列的具有相似条件(对应于 where 中的条件)的数据进行合并时,使用 group by 将记录分组,再使用聚合函数对数据进行需要的操作。这样就可以使用一条语句将所有的数据进行分组求和。
创建例子中的数据的 SQL 语句为
1 | CREATE DATABASE /*!32312 IF NOT EXISTS*/`group` /*!40100 DEFAULT CHARACTER SET utf8 */; |
查询语句为
1 | SELECT SUM(c) 'c 列数据的和',SUM(d)'d 列数据的和' |