博客统计信息

51cto推荐博客
用户名:jankie
文章数:154
评论数:294
访问量:350569
无忧币:30108
博客积分:3168
博客等级:6
注册日期:2006-03-06

group by @ having的使用
2007-01-08 16:02:10

使用group by 和having之前要记住:

1、当select子句中使用了聚合函数时,需使用group by进行分组

2、如果使用了group by进行分组,并且要加条件只能使用having子句

 


--创建一个这样的表
/*
成绩表

编号   姓名  成绩   专业  班级  籍贯
 1     李伟   70    通信  二班   河北
 2     王明   80    物理  一班   北京
 3     张倩   77    英语  一班   北京
 4     刘飞   89    英语  二班   河北
 5     黄明   78    物理  二班   天津
 6     周郁   89    通信  一班   河北
 7     仁大   90    通信  二班   天津
 8     青花   99    数学  一班   天津
*/

--例1:根据籍贯算出同一籍贯的最大成绩
 
   select 籍贯,max(成绩)
   from 成绩表
   group by 籍贯

--例2:根据班级算出每班的平均成绩
 
   select 班级,avg(成绩)
   from 成绩表
   group by 班级


--例3:根据专业算出每个专业的最小成绩

   select 专业,min(成绩)
   from 成绩表
   group by 专业

--例4:根据籍贯算出同一籍贯有多少学员

   select 籍贯,count(籍贯)
   from 成绩表
   group by 籍贯


--having的使用查询平均成绩大于等于70

  select 专业,avg(成绩) as 平均成绩
  from 成绩表
  group by 专业
  having avg(成绩) >=70

分享至
更多
一键收藏,随时查看,分享好友!
0人
了这篇文章
类别:SQL Server技术圈()┆阅读()┆评论() ┆ 推送到技术圈返回首页
上一篇 多表查询例 下一篇 T-SQL语句之创建、修改、删除数据库

相关文章

文章评论

 
2007-01-08 20:41:59
简单易读,半分钟看明白,严重支持!

2009-08-05 14:19:28
我有一个疑问
这种情况如何进行
select count(city_id),count(location_id) from location_tbl group by city_id,location_id
得出来的结果中如果city_id 相同 location_id 不同的话将会被分成两类 如何能够在这种情况下将city_id相同的数目显示出来?难道非得在程序中进行操作处理?

2010-03-05 23:48:25
不错,简单明了,支持

 

发表评论            

【技术门诊】专家解析:软考重点难点及应试技巧
昵  称:
登录  快速注册
验证码:

请点击后输入验证码博客过2级,无需填写验证码

内  容: