注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 一个黑客与一个电脑白痴的..
 帮助

group by @ having的使用


2007-01-08 16:02:10
 标签:having 聚合函数   [推送到技术圈]

使用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





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

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: