码迷,mamicode.com
首页 > 其他好文 > 详细

(十二)分组查询

时间:2017-03-20 19:04:50      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:and   排列   ros   产生   rom   size   sde   省份   并且   

(十二)分组查询

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

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

  • 分组

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

    [WHERE <条件> ]

    GROUP BY <字段名表2>

    [HAVING <条件> ]

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

--例1 查询各班学生的最大年龄、最小年龄、平均年龄和人数
-- 将多余空格删去
UPDATE Student
SET Sdept = ltrim(sdept)

Select ltrim(Sdept) AS 系别, MAX(Sage) AS 最大, MIN(Sage) AS 最小,
AVG(Sage) AS 平均, COUNT(*) AS 人数
FROM Student
GROUP BY ltrim(Sdept)
ORDER BY 平均 DESC

--例2 查询各班学生的最大年龄、最小年龄、平均年龄和人数
--并且按平均年龄降序排列
--见上

--例3 查询各系别男生和女生人数
SELECT Sdept, Ssex, COUNT(*) AS 人数
FROM Student
GROUP BY Sdept, Ssex  --通过系别,男女分组
ORDER BY Sdept

--例4 查询各系别姓张的学生的人数
SELECT Sdept, Count(*) AS 张姓人数 
FROM Student
WHERE Sname LIKE 张%
GROUP BY Sdept

--例5 查询姓"张"的学生人数等于1的班级 及 姓张的人数
SELECT Sdept, Count(*) AS Douzi  
FROM Student
WHERE Sname LIKE 张%
GROUP BY Sdept
Having COUNT(*) = 1

--例6 查询各系别同学来自不同的省份人数,按班级排序
Select Sdept, Province, Count(*)
from Student
GROUP BY Sdept, Province
ORDER BY Sdept

 

(十二)分组查询

标签:and   排列   ros   产生   rom   size   sde   省份   并且   

原文地址:http://www.cnblogs.com/douzujun/p/6590610.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!