sql问题,是这样的,现在有a表其中有b,和c两个字段,我要做这样一件事,就是查询a表中b列

中的身份证号重复的项,并且记录下他们各自的重复次数,并且再对查出来的结果进行一个子查询,条件是c列如果有超过一个和其他数据不同的项的话,就查出来,就是这样比如查出来的c中... 中的身份证号重复的项,并且记录下他们各自的重复次数,并且再对查出来的结果进行一个子查询,条件是c列如果有超过一个和其他数据不同的项的话,就查出来,就是这样比如查出来的c中有20000,20000,20000,就没事,不用查出来,但是只要是20000,20001,200000就要查出来,当然200000,200000,200001,200001也要查出来。谢谢大家伙了!!! 展开
 我来答
Andy_Sun321
2013-08-07 · TA获得超过1376个赞
知道小有建树答主
回答量:811
采纳率:89%
帮助的人:730万
展开全部
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不同的值存在 */
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月下丶思佳人
2013-08-07
知道答主
回答量:37
采纳率:0%
帮助的人:20.9万
展开全部
后面内容没看懂,前面的部分是 select b,count(b) from a group by b having count(b)>1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bd_is_s_b
2013-08-07 · TA获得超过487个赞
知道小有建树答主
回答量:64
采纳率:0%
帮助的人:75.7万
展开全部
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
是这个意思吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2013-08-07 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5177万
展开全部
这个我没看懂,不应该是查询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)

感觉还是不大明白,你可以先试试

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式