一个关于sql语句查询的难题(查询一个列中(比如name)姓名相同并且个数大于1的name的语句).

qizhenzhanga 2011-12-29 12:00:58
比如有一个表student
id name pwd
1 zhang zhang
2 zhang qq
3 zhen wog
4 zhen gg
5 zhen wogs
6 hu meifa

比如这个student这个表中, name这一列有2个zhang,3个zhen, 1个qi.
我如何使用sql语句查询出姓名个数大于1个的name啊!!!
这个问题困扰了我,希望各位大师帮帮我,谢谢啊.
...全文
551 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2011-12-29
  • 打赏
  • 举报
回复
select name from student group by name having count(1) > 1

select * from student where name in (select name from student group by name having count(1) > 1)
AcHerat 2011-12-29
  • 打赏
  • 举报
回复

select name
from student
group by name
having max(id) > min(id)
AcHerat 2011-12-29
  • 打赏
  • 举报
回复

select *
from student t
where exists (select 1 from student where name = t.name and id <> t.id)
AcHerat 2011-12-29
  • 打赏
  • 举报
回复

select name
from student
group by name
having count(*) > 1
zhangbijie 2011-12-29
  • 打赏
  • 举报
回复
select name ,num from
(select name,num = count(name) from tb group by name)t where num >1
  • 打赏
  • 举报
回复
select name from student group by name having count(*) > 1

having count(*)>是对group by 后生成的虚拟表的数据进行过滤,过滤掉只有一个的情况,剩下的就是需要查询的了
kevin521 2011-12-29
  • 打赏
  • 举报
回复
AcHerat 的性能发面比较好,建议采用这个
一十七 2011-12-29
  • 打赏
  • 举报
回复


select * from student A
where EXISTS (select name from student WHERE A.name = name group by name having count(1) > 1)

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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