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 排序