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

如上图,A列张三对应的C列有两个结果,则将C列每个不同的结果任意显示一条(全部显示也行)李四、王五对应的C列只有一个结果,不需要显示... 如上图,A列张三对应的C列有两个结果,则将C列每个不同的结果任意显示一条(全部显示也行)
李四、王五对应的C列只有一个结果,不需要显示
展开
 我来答
刺友互
高粉答主

2019-07-10 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:71.8万
展开全部

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”来去掉两个字段的重复数据。

badkano
推荐于2018-02-26 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885365
团长

向TA提问 私信TA
展开全部

创建测试表

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


结果

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1015768572
2014-06-11 · TA获得超过223个赞
知道小有建树答主
回答量:345
采纳率:66%
帮助的人:156万
展开全部
select a,c from table group by a,c order by a,c
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
真相很简单
2014-06-11 · TA获得超过643个赞
知道小有建树答主
回答量:539
采纳率:50%
帮助的人:416万
展开全部
select * from table
group by C
having count(distinct(C))>1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式