sql问题,是这样的,现在有a表其中有b,和c两个字段,我要做这样一件事,就是查询a表中b列
中的身份证号重复的项,并且记录下他们各自的重复次数,并且再对查出来的结果进行一个子查询,条件是c列如果有超过一个和其他数据不同的项的话,就查出来,就是这样比如查出来的c中...
中的身份证号重复的项,并且记录下他们各自的重复次数,并且再对查出来的结果进行一个子查询,条件是c列如果有超过一个和其他数据不同的项的话,就查出来,就是这样比如查出来的c中有20000,20000,20000,就没事,不用查出来,但是只要是20000,20001,200000就要查出来,当然200000,200000,200001,200001也要查出来。谢谢大家伙了!!!
展开
展开全部
select s.b, sum(s.cnt) as cnt
from (
select a.b, a.c, count(a.b) as cnt
from a
group by a.b, a.c
) s
group by s.b
having count(s.b) > 1 /* 说明在b值相同的情况下, 有c不同的值存在 */
from (
select a.b, a.c, count(a.b) as cnt
from a
group by a.b, a.c
) s
group by s.b
having count(s.b) > 1 /* 说明在b值相同的情况下, 有c不同的值存在 */
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
后面内容没看懂,前面的部分是 select b,count(b) from a group by b having count(b)>1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select b from a group by b,c having count(b)>1 order by b
更多追问追答
追问
先谢谢你啊,但是查询结果有多余的,注意我的两个条件,1,在b列中有重复的数据2,不能在c列中是全部一样的
追答
select distinct b from (select b from a group by b,c having count(b)>1) order by b
这样,就能满足你的条件了
比如:
b c
1 12
1 12
1 13
2 234
2 256
2 278
3 345
4 456
4 456
这样查出来的应该是
1
2
是这个意思吗?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个我没看懂,不应该是查询b以及重复的数量为前提吗,为什么1L的例子只单单把b列了出来啊?
追问
哦,查询输出的时候只要能输出满足条件的b列就行了
追答
select distinct b
from (select b,count(1)bc from a group by b having count(1)>1) aa,a
where aa.b=a.b
group by a.b,a.c
having count(1)<max(bc)
感觉还是不大明白,你可以先试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询