求一个SQL语句或过程:查出带条件的重复记录

jacky_hou 2003-10-18 03:26:42
详细请看http://expert.csdn.net/Expert/topic/2291/2291572.xml?temp=.3129694
该题目为如下
比如说一个表student, 学号(id), 姓名(name),年龄(age)
我想把所有的姓名有重复的那些数据查询出来, 这个SQL语句应该如何来写?

其中 txlicenhe(马可&不做技术高手) 的解决办法是
Select name,count(*) as 重复次数 from 表
group by name
having count(*) > 1

lionstar(小狮子) 的解决办法是
SELECT * FROM STUDENT WHERE NAME IN
(SELECT NAME FROM STUDENT
GROUP BY NAME HAVING COUNT(NAME)>1
)
我觉得这些方法都很不错,但是我的问题则是在上面问题的基础上要求查出年龄为27
岁姓名有重复的那些数据查询出来,又该如何做呢?如果有人告诉我,先把年龄为27岁的数据倒出成另外一个表,然后用上面的方法解决,那么我说请不要回贴,谢谢你的好意!也谢谢大家的回复
sh
...全文
100 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yujohny 2003-10-18
  • 打赏
  • 举报
回复
第二个第三个有什么问题,说出来
jacky_hou 2003-10-18
  • 打赏
  • 举报
回复
第二和第三个答案有问题,第一个可以,我以为where不可以和 group by联合使用!谢谢,分要给的,但是还想看有没有别的答案!
jacky_hou 2003-10-18
  • 打赏
  • 举报
回复
好像不对呀,在看看 !
yujohny 2003-10-18
  • 打赏
  • 举报
回复
SELECT * FROM STUDENT
WHERE AGE=27 AND NAME IN (SELECT NAME FROM STUDENT GROUP BY NAME HAVING COUNT(NAME)>1)
yujohny 2003-10-18
  • 打赏
  • 举报
回复
SELECT * FROM STUDENT WHERE NAME IN
(SELECT NAME FROM STUDENT where age=27
GROUP BY NAME HAVING COUNT(NAME)>1
)
yujohny 2003-10-18
  • 打赏
  • 举报
回复
Select name,count(*) as 重复次数 from 表 where age=27
group by name
having count(*) > 1

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧