SQL查找某一字段相同,某一字段不同的数据

如上图,A列张三对应的C列有两个结果,则将C列每个不同的结果任意显示一条(全部显示也行)
李四、王五对应的C列只有一个结果,不需要显示

1、在我们的电脑上打开数据库,这里新建一张含有重复数据的user表做示例。

2、我们输入“select * from user where name in (select name from user group by name having count(name) > 1) ”sql语句,点击运行可以看到查询出了数据库中user表的重复数据。

3、通过“delete from user where   name in (select name from user group by name  having count(name) > 1) ”sql语句删除姓名重复的数据。

4、通过“select distinct name from user”sql语句来去掉重复数据,这里去掉了张三的重复数据。

5、通过“select distinct class from user”sql语句来去掉班级相同的重复数据。

6、也可以通过“select distinct name,class from user”来去掉两个字段的重复数据。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-26

创建测试表

create table t
(a varchar(10),
b int,
c varchar(1))

insert into t values ('张三',1,'Y')
insert into t values ('张三',2,'Y')
insert into t values ('张三',3,'N')
insert into t values ('李四',1,'Y')
insert into t values ('王五',1,'Y')
insert into t values ('王五',2,'Y')

执行查询

select a,MIN(b) b,c from t
where a in 
(select a from t group by a having COUNT(distinct c)>1)
group by a,c


结果

本回答被提问者和网友采纳
第2个回答  2014-06-11
select a,c from table group by a,c order by a,c
第3个回答  2014-06-11
select * from table
group by C
having count(distinct(C))>1