本文来自:http://lxingyue1009.blog.163.com/blog/static/16189332320104695022118/
sql语句中怎样查学生表中所有有着相同的名字的人的信息
如果每个学生只有一条记录的话,按姓名分组,统计记录条数(大于1),再这些有相同姓名条数的人的姓名作为条件,检索出相应信息
语句如下:
select *
from 学生表
where 姓名 in
(selecct 姓名
from 学生表
group by 姓名
having count(*)>1 )
?
goup by ... having 用法
一.分组查询
1.使用group by进行分组查询
在使用group by关键字时,在select列表中可以指定的项目是有限制的,select语句中仅许以下几项:
〉被分组的列
〉为每个分组返回一个值得表达式,例如用一个列名作为参数的聚合函数
group by的使用在这只写几个例子吧:
例:
select courseID,avg(score) as 课程平均成绩
from score
group by courseID
例:
select studentID as 学员编号,courseID as 内部测试,avg(score) as 内部测试平均成绩
from score
group by studentID,courseID
2.使用having子句进行分组筛选
where子句只能对没有分组统计前的数据行进行筛选,对分组后的条件的筛选必须使用having子句
例:
select studentID as 学员编号,courseID as 内部测试,avg(score) as 内部测试平均成绩
from score
group by studentID,courseID
having count(score)>1
!在select语句中,where、group by、having子句和统计函数的执行次序如下:
where子句从数据源中去掉不符合去搜索条件的数据;group by子句搜集数据行到各个组中,统计函数为各个组计算统计值;having子句去掉不符合其组搜索条件的各组数据行
?
公司的使用
select CL_DISPLAYNAME from jf_org_user? where? CL_DISPLAYNAME in (select CL_DISPLAYNAME
from jf_org_user )
group by CL_DISPLAYNAME
having count(*)>1
?