首页 > 代码库 > (十二)分组查询

(十二)分组查询

(十二)分组查询

  • 将数据表中的数据按某种条件分成组,按组显示统计信息

  • 查询各班学生的最大年龄、最小年龄、平均年龄和人数

  • 分组

    SELECT <字段名表1> FROM <表名> -- 这里字段名表1 应该 是 按照字段名表2 分组以后 能够产生唯一值的 字段(如:班级)

    [WHERE <条件> ]

    GROUP BY <字段名表2>

    [HAVING <条件> ]

    [ORDER BY <字段名列表3> ]

--例1 查询各班学生的最大年龄、最小年龄、平均年龄和人数-- 将多余空格删去UPDATE StudentSET Sdept = ltrim(sdept)Select ltrim(Sdept) AS 系别, MAX(Sage) AS 最大, MIN(Sage) AS 最小,AVG(Sage) AS 平均, COUNT(*) AS 人数FROM StudentGROUP BY ltrim(Sdept)ORDER BY 平均 DESC--例2 查询各班学生的最大年龄、最小年龄、平均年龄和人数--并且按平均年龄降序排列--见上--例3 查询各系别男生和女生人数SELECT Sdept, Ssex, COUNT(*) AS 人数FROM StudentGROUP BY Sdept, Ssex  --通过系别,男女分组ORDER BY Sdept--例4 查询各系别姓张的学生的人数SELECT Sdept, Count(*) AS 张姓人数 FROM StudentWHERE Sname LIKE 张%GROUP BY Sdept--例5 查询姓"张"的学生人数等于1的班级 及 姓张的人数SELECT Sdept, Count(*) AS Douzi  FROM StudentWHERE Sname LIKE 张%GROUP BY SdeptHaving COUNT(*) = 1--例6 查询各系别同学来自不同的省份人数,按班级排序Select Sdept, Province, Count(*)from StudentGROUP BY Sdept, ProvinceORDER BY Sdept

 

(十二)分组查询