Fork me on GitHub

聚合函数

group by 写在where语句后面

----注意:聚合时,不能直接和普通列一起查询显示

select count(姓名) 总人数 ,max(总学分) 最高分 from xs

select count(*) as 总人数 from xs

------查询每个专业有多少人?
select 专业名,count(姓名) 总人数 from xs
group by 专业名

--------查询计算机专业,男生和女生的人数
select '计算机' 专业, 性别 ,count(*) 人数 from xs
where 专业名='计算机'
group by 性别


--------查询计算机专业的男女生人数,且人数要大于5个人的数据
select 专业名,性别,count(*) as 人数 from xs --基本查询
where 专业名='计算机' --原表条件
group by 专业名,性别 --聚合分组
having count(*)>5 --分组后的聚合条件
order by 人数 desc --排序

 

----------------------查询各专业的平均分高于50的总人数
select 专业名,avg(总学分) 平均分,count(*) 总人数 from xs
group by 专业名
having avg(总学分)>50

 

--查询所有姓王的同学的姓名、专业、总学分,并按照总学分高低排序
select 姓名,专业名,总学分 from xs where 姓名 like '王%' order by 总学分 desc

 


--查询3条记录
select top 3 * from xs order by 总学分 desc

--查询前三,保留相同的排名
select top 3 with ties * from xs order by 总学分 desc

 


--3、查询各专业,平均总学分高于50的,总人数
select 专业名,avg(总学分) as 平均分,count(*) from xs
group by 专业名
having avg(总学分)>50

 

---分组结果汇总
select 专业名,性别,count(*) as 总人数 from xs
group by 专业名, 性别 with rollup

posted @ 2018-10-10 14:47  欢欢11  阅读(207)  评论(0编辑  收藏  举报