sum()函数

一般求和
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()函数

要注意的是: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

SQL的执行顺序:

第一步:执行FROM
第二步:WHERE条件过滤
第三步:GROUP BY分组
第四步:执行SELECT投影列
第五步:HAVING条件过滤
第六步:执行ORDER BY 排序

sum()函数一般求和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()函数要注意的是:count(case when 字段&gt
sum (case when t.ride_num=1 then 1 else 0 end ) as ride_1_times count (case when t.ride_num=1 then 1 else nullend ) as ride_1_times count (case when t.ride_num=1 then 1 end ) as ride_1_times then=...
数据库查询相信很多人都不陌生,所有经常有人调侃程序员就是CRUD专员,这所谓的CRUD指的就是数据库的增删改查。 在数据库的增删改查操作 ,使用最频繁的就是查询操作。而在所有查询操作 ,统计 数量 操作更是经常被用到。 关于数据库 行数统计,无论是 MySQL 还是Oracle,都有一个 函数 可以使用,那就是 COUNT 。 但是,就是这个常用的 COUNT 函数 ,却暗藏着很多玄机,尤其是在面试的时候,一不小心就会...
最近发现在处理 Mysql 问题时, count () 函数 频繁上镜,常常出现在分组统计的情景下,但是有时候并不是使用group by分好组就可以直接统计了,比如说一个常见的需求,统计每个班级男生所占的比例,这种情况一般会按照班级分组,但是分组内不但要统计班级的人数,还要统计男生的人数,也就是说统计是有 条件 的,之前确实没有考虑过怎样实心,后来查询了资料,总结在这里... Mysql c...
SELECT count (1) as totalnum , sum (CASE order_state WHEN 1 THEN 1 ELSE 0 END ) AS newSend, sum (CASE order_state WHEN 2 THEN 1 ELSE 0 END) as ss, sum (CASE order_state WHEN 3 THEN 1 ELSE 0 END)