函数和sum函数的用法"/>
mysql中count函数和sum函数的用法
mysql中用于统计的二个函数,而这二个函数通常和group by分组函数配合使用
一、count(*)是统计每一组有多少行
count(*)是将返回表格中所有存在的行的总数包括值为null的行。然而count(列名)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入)
二、distinct 列名,得到的结果将是除去值为null和重复数据后的结果。
三、sum()分组之后通常需要求和计算(一列多行数据统计)
sum的用法,还可以传入条件判断,可以看一个案例
mysql的手册中对SUM函数的介绍非常简单和含糊, 今天在搜资料的时候发现SUM函数的参数还可以加入条件判断.
比如有如下的一个表:
日期 支出项目名称 支出类别 支出金额 类别编号
2006-07-03 购买发票 发票 709 2
2006-07-05 华夏干红2瓶(单价32) 吧台支出 64 3
2006-07-05 鲜橙多33瓶(单价1) 吧台支出 33 3
2006-07-05 购雪碧,百事42瓶(单价2) 吧台支出 84 3
2006-07-05 购菜金 其它 180.6 1
2006-07-05 手机网络费 办公用品 8 4
2006-07-05 手机SIM卡一张 办公用品 20 4
2006-07-05 手机英华OK106一台 办公用品 310 4
2006-07-05 购饮料人工费 吧台支出 3 3
2006-07-05 冰点水17瓶(单价2) 吧台支出 34 3
2006-07-06 广告费 其它 900 1
2006-07-06 微波炉 其它 299 1
2006-07-06 垃圾桶 其它 30 1
2006-07-06 意见簿 其它 20 1
2006-07-06 冰糖夹 其它 4 1
2006-07-06 开刀 其它 6 1
2006-07-06 修正液 办公用品 2 4
2006-07-06 圆珠笔芯 办公用品 8 4
2006-07-06 打码机,印泥 办公用品 7 4
2006-07-06 收银夹 办公用品 9 4
现在要对每天, 每种支出类别的总和建立一个视图,可以用这样的语句:
CREATE VIEW `tbl_view` AS SELECT
日期,
SUM( IF( 类别编号 =1, 支出金额, 0 ) ) AS 其它支出,
SUM( IF( 类别编号 =2, 支出金额, 0 ) ) AS 发票,
SUM( IF( 类别编号 =3, 支出金额, 0 ) ) AS 吧台支出,
SUM( IF( 类别编号 =4, 支出金额, 0 ) ) AS 办公用品
FROM `tbl`
ORDER BY `日期`
GROUP BY `日期`
建好的视图 tbl_view会是这个样子:
日期 其它支出 发票 吧台支出 办公用品
2006-07-03 0 709 0 0
2006-07-05 180.6 0 218 138
2006-07-06 1253 0 0 26
总结
语句 SUM( IF( 类别编号 =1, 支出金额, 0 ) ) AS 其它支出,
表示当类别编号为1的时候对支出金额列求和
IF 其实是mysql的一个流程控制函数,
接受三个参数, 当第一个参数的结果为真的时候返回第二个参数, 否则返回第三个参数
更多推荐
mysql中count函数和sum函数的用法
发布评论