MySql查询,聚合函数,分组,分页,排序等复杂查询

--聚合(分组)函数

 

count(*):统计个数
max(列名):最大值
min(列名):最小值
sum(列名):求和
avg(列名):平均值

 

  -举例

-- 总条数
SELECT COUNT(*) AS 总数 FROM student;
-- 查询年龄大于40的总数
SELECT COUNT(*) FROM student WHERE age > 40;
-- 查询数学成绩总分
SELECT SUM(math) FROM student;
-- 查询数学成绩平均分
SELECT AVG(math) FROM student;
-- 查询数学成绩最高分
SELECT MAX(math) FROM student;
-- 查询数学成绩最低分
SELECT MIN(math) FROM student;

--分组

1. 语法
  select 分组列 from 表名 group by 分组列 having 分组后条件筛选
        
2. wherehaving 区别
  where在分组前进行条件筛选,不支持聚合函数
  having在分组后进行条件筛选,支持聚合函数

  -举例

-- 统计男生女生各多少人,在同一条sql实现...
SELECT sex,COUNT(*) FROM student GROUP BY sex;
-- 查询年龄大于25岁的人,按性别分组,统计每组的人数,并只显示性别人数大于2的数据
SELECT sex,COUNT(*) FROM student GROUP BY sex HAVING COUNT(*) > 2;

--分页

1. 语法
  select ... from 表名 limit 开始索引,每页显示个数;
        
2. 索引特点
  索引起始值是0;可以省略,默认值也是0
        
3. 分页索引公式
  开始索引 = (当前页-1) × 每页个数
-- 分页
SELECT * FROM student LIMIT 5;
原文地址:https://www.cnblogs.com/xiaozhang666/p/13433737.html