当A列的数据一样的时候输出B列不一样的数据

大概的意思就是 这个样子:

image.png

表中 A列数据一样的时候 大多数 B列的数据是一样的  但是想找出 不一样的做一下验证 所以 要用怎样的sql 做过滤 请大佬们 指点


image.png

大哥大没信号 发布于 2020-7-20 13:54 (编辑于 2020-7-20 14:25)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
axingLv6专家互助
发布于2020-7-20 14:41
select a.* from temp a,temp b 
where a.a=b.a and a.b<>b.b

image.png

  • 大哥大没信号 大哥大没信号(提问者) 表 temp b 是咋定义的 这个temp b 没看懂
    2020-07-20 14:57 
  • axing axing 回复 大哥大没信号(提问者) 表的自关联,temp表连接自己本身,为了区别,一个取别名为a,一个取别名为b
    2020-07-20 15:04 
  • 大哥大没信号 大哥大没信号(提问者) 回复 axing 昂昂 谢谢老哥 学到了
    2020-07-20 15:20 
最佳回答
0
snrtuemcLv8专家互助
发布于2020-7-20 13:58

select  distinct A,B from 表

  • 大哥大没信号 大哥大没信号(提问者) 这样 是可以 但是 是泛指 不精确 这样查出来的数据 还有 一些AB关系 是 一对一的 在里边
    2020-07-20 14:00 
  • snrtuemc snrtuemc 回复 大哥大没信号(提问者) 有其他列的话, select distinct (A,B),C,D from 表
    2020-07-20 14:02 
  • 大哥大没信号 大哥大没信号(提问者) 回复 snrtuemc 不看其他列 就看这两个列 用distinct的话 举个例子 就是 A列 有个D B列有个4 这时候查询结果里 出现的东西 就跟需求要的 不一样了
    2020-07-20 14:07 
最佳回答
0
shirokoLv6资深互助
发布于2020-7-20 14:01(编辑于 2020-7-20 14:45)
SELECT v.A列,w.B列 FROM 
(select count(*) ,A列 FROM (SELECT DISTINCT A列,B列 from 表)
group by A列
HAVING COUNT(*)>1) v
left join 表 w on v.A列=w.A列

刚才少了一个步骤。。再看看

  • 大哥大没信号 大哥大没信号(提问者) 两个字段 在一个表里
    2020-07-20 14:08 
  • shiroko shiroko 回复 大哥大没信号(提问者) 这就是一个表里啊,只是别名起的不同
    2020-07-20 14:10 
  • 大哥大没信号 大哥大没信号(提问者) 回复 shiroko 感觉查询结果 还是没有查出 B列 不一样的 跟想要的效果 有点不一样 结果 挂到 上边了
    2020-07-20 14:26 
  • 4关注人数
  • 456浏览人数
  • 最后回答于:2020-7-20 14:45
    请选择关闭问题的原因
    确定 取消
    返回顶部