聚合函数
count 统计总数
select count(*) as 女性人数 from student where gender='女';//查询女性总人数
max最大值
select max(age) as 年龄最大 from student;
select max(height) from student where gender='女';//查询最高身高的女性
sum 求和
select sum(age) from student;//所有人的年龄总和
avg 平均值
select avg(age) from student;//所有人的年龄平均值
round 四舍五入 round(123.23,2)小数点保留2位
select round(avg(height),2) from student where gender='男';//计算男性平均身高 保留2位小数
分组 group by
分组一般与聚合函数一起使用
计算每种性别的人数
select gender,count(*) from student group by gender;
计算男性人数
select gender,count(*) from student where gender='男' group by gender;
group_concat(…)
查询同种性别中的姓名
select gender,group_concat(name) from student where gender='男' group by gender;
select gender,group_concat(name,"_",age," ",id) from student where gender='男' group by gender;
having 对分组后 条件再过滤
查询平均年龄超过30岁的性别,以及姓名 having avg(age)>30
select gender,group_concat(name),avg(age) from student group by gender having avg(age) > 30;
查询每种性别中人数多于2个的信息
select gender,group_concat(name) from student group by gender having count(*) >2;
where 与having区别:
where是对原表区过滤判断
having是原表区分组后再过滤判断