1、mysql 数据库中 count() 函数是统计查询结果中的行数,例如我们有下表user_auth :
使用 count() 函数来查询结果个数,使用如下查询:
mysql > select count(*) from user_auth ;
注意的是,count 会忽略掉 NULL 的结果,所以 count(字段名) 这样使用的话,如果字段中包含为null的结果,将导致查询结果不准确,我们将表中数据更改如下:
此时查询:
mysql > select count(user_id) from user_auth;
结果如下:
2、mysql 中 sum() 函数用于计算某一字段中所有行的数值之和( sum 求和时会对 null 进行过滤,不计算),例如如下查询:
mysql > select sum(user_id) from user_auth;
结果如下:
另外也能使用 sum(条件) 进行对符合条件的结果行数进行求和,如下查询:
mysql > select sum(user_id is null),sum(aid = 1) from user_auth;
结果如下:
需要注意的是,如果在没有返回行中使用 sum() 函数,sum 函数的返回值为 null,不是 0,例:
mysql > select sum(user_id) from user_auth where id not in (2,4,6);
结果如下:
此时使用JDBC或者一些第三方框架进行映射时就会报错,
解决办法是:
使用IFNULL(sum(user_id),0) 或者 COALESCE(sum(user_id),0) 进行结果的转换。
一般求和
select sum(money) from user group by id;
按条件求和 (对所有金额大于100的数据进行求和)
select sum(if(money>=100,money,0)) from user group by id;
聚合函数中如果想汇总某一类数据的数量,可以在括号中增加条件:
sum(case when 字段>0 then 1 else 0 end) as 字段
要注意的是:count(case when 字段>0 then 1 else 0 end) as 字段,这样写的话
count函数不管记录内容是0或1,它的作用只是计算记录数,计算出来的是0和1的全部次数,如果你要计算次数,用sum(case when 字段>0 then 1 else 0 end) as 字段
或者你用 count(case when 字段>0 then 1 else null end) as 字段 这种写法
基本原理是 使用了数据库count(null)时返回的是0 ,count(非null)返回是1
以上为个人经验,希望能给大家一个参考,也希望大家多多支持一聚教程网。
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔