首页 > 数据库技术 > 详细

sql复习-分组

时间:2014-11-20 23:30:46      阅读:420      评论:0      收藏:0      [点我收藏+]
--数据分组-统计信息
--查询每个班级的总人数
select COUNT(8) from Student
select ClassId, COUNT(*) from Student group by ClassId
--得到男生,女生的总人数  group by按指定的字段进行分类
select sex, COUNT(*) from Student group by sex

--与聚合函数一起出现在查询中的其它列,只有两个可能性:被聚合,被分组,它往往就是被分组
select sex, COUNT(*) from Student

select distinct sex  from Student
select COUNT(*) from Student

select classid, COUNT(*) from Student
select * from Student
--顺序不能变 select(5) top/distinct 7 查询字段 from (1)表列表 where (2)对源数据进行筛选 group by(3) 分组统计字段列表 having (4)对分组统计结果集做筛选 order by (6)对最终的结果集做记录重排

--where是对源数据做筛选的。它只能去使用from后面的表中所指定的列
--聚合不应出现在 WHERE 子句中,就意味着聚合函数的条件不能通过where来指定
--如果是对分组之后的结果集做筛选,那么就需要使用having
--having的列是从group by中获取的
--对分组统计结果集做筛选后再进行数据的显示。
select ClassId, COUNT(*) num   from Student  group by ClassId  order by num desc

select top 2 ClassId, COUNT(*) num   from Student  group by ClassId  order by num desc

--1.查询每个班级的总学时数,并按照升序排列
--2.查询每个参加考试的学员的平均分
--3.查询每门课程的平均分,并按照降序排列
--4.查询每个班级男女生的人数

--当你看到类似于:各个,各自,每个,不同这些词的时候需要 考虑分组
select ClassId, SUM(ClassHour) from Subject where ClassId is not null group by ClassId

select StudentNo,AVG(StudentResult) from Result group by StudentNo

select SubjectId,AVG(StudentResult) from Result group by SubjectId


--查询每个班级男女生的人数
select ClassId,sex, COUNT(*) from Student group by ClassId,sex order by ClassId,sex

 

sql复习-分组

原文:http://www.cnblogs.com/junhuang/p/4111704.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!