COUNT(统计数量)
统计满足条件的记录数有多少条,一般按照分组的形式统计。
基本语法:
select count(*) | count(列名) from tbl-name
例子:
1. 统计班级里的学生
select count(*) AS nums from class;
2. 显示员工总数,以及获得奖金的员工人数
select count(*), count(if(comm>0.0, 1 , null)) from worker;
这里用到了if语句,因为count只要值不是null,都会被统计。
count(*) && count(列名)
count(列名)会忽略null的记录。
sum(求和)
基本语法:
select sum(列名) from tbl_name
例子:
1.统计一个班级数学总成绩
select sum(math) from tal_name;
2.统计一个班级语文、数学、英语的成绩总和
// ↓↓一定正确
select sum(chinese) + sum(math) + sum(english) from tbl_name
// ↓↓如果没有null,就正确;有的话,就不正确
select sum(chinese+math+english) from tbl_name
细节说明:
当列值有null时,进行sum操作:
1)如果是对单列进行统计,得出的值是正确的;
2)如果是多列,就会有错误。
解决方案:
使用第一种方式统计;
使用ifnull
ifnull(expr1, expr2)
如果expr1为null,取expr2的值;否则,取expr1的值。
改写成如下形式:
select sum(ifnull(chinese,0.0)+ sum(ifnull(math,0.0)) from tbl_name
avg(平均数)
基本语法:
select avg(列名) from tbl_name
例子:
求班级数学的平均分
select avg(math) from tbl_name
max、min
基本语法:
select max(列名) from tbl_name
select min(列名) from tbl_name
例子:
求班级数学最高分和最低分
select max(math), min(math) from tbl_name