首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

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

一个关于sql语句查询的难题(查询一个列中(比如name)姓名相同并且个数大于1的name的语句).
比如有一个表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啊!!!
这个问题困扰了我,希望各位大师帮帮我,谢谢啊.

[解决办法]

SQL code
select namefrom studentgroup by namehaving count(*) > 1
[解决办法]
SQL code
select *from student twhere exists (select 1 from student where name = t.name and id <> t.id)
[解决办法]
SQL code
select namefrom studentgroup by namehaving max(id) > min(id)
[解决办法]
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)
 
[解决办法]
select name ,num from 
(select name,num = count(name) from tb group by name)t where num >1
[解决办法]
SQL code
select * from student Awhere EXISTS (select name from student WHERE A.name = name group by name having count(1) > 1)
[解决办法]
AcHerat 的性能发面比较好,建议采用这个
[解决办法]
select name from student group by name having count(*) > 1

having count(*)>是对group by 后生成的虚拟表的数据进行过滤,过滤掉只有一个的情况,剩下的就是需要查询的了

热点排行