有两个表的结构是一样的 包含的字段是续号,身份证号,姓名分别统计表A中身份证号重复的数据
统计结果为 续号 身份证号 姓名,重复次数 (只取一个人的就可以)统计表A和表B中身份证号重复的数据
统计结果为 序号 身份证号 姓名 重复次数(取表A中的人,如果该人是在表B中重复则取表B的数据)
统计结果为 续号 身份证号 姓名,重复次数 (只取一个人的就可以)统计表A和表B中身份证号重复的数据
统计结果为 序号 身份证号 姓名 重复次数(取表A中的人,如果该人是在表B中重复则取表B的数据)
解决方案 »
- 为何oracle commit 时会报ORA-00018: 超出最大会话数错误!
- 高手帮忙看看这个问题???
- oracle10g 如何创建数据库?
- pro*c问题???
- 如何以长数据在数据库中找其包含的短数据.
- 在线求救:关于跨网段的Oracle数据库连接问题
- 如何用sql语句把access数据库中的表导入oracle9i数据库中?急急急!
- 小弟這裡有個簡單問題..希望大家可以幫幫忙給點提示..(關於Form 的)..
- 在一个表空间中创建1000个以上的表oracle吃的消吗?
- sql查询问题,只会简单查询
- 如何将数据库中指定表导出,要求用批处理程序来做
- @@@@急@@@@求助把SQLSERVER语句转换成ORACLE
统计结果为 续号 身份证号 姓名,重复次数 (只取一个人的就可以)
select 续号 ,身份证号, 姓名,重复次数
from
(
select 续号 ,身份证号, 姓名,
count(身份证号) over (order by 身份证号) 重复次数,
row_number() over (partition by 身份证号 order by 续号,姓名) rowid
from a
)
where 重复次数 = rowid
and rowid > 1
from b
where exits(
select 序号,身份证号,姓名
,count(身份证号)over(order by 身份证号) 重复次数)
from a
)
统计结果为 续号 身份证号 姓名,重复次数 (只取一个人的就可以)
------------------------------->
select t.*
from (select 序号,身份证号,姓名,count(*)over(order by 身份证号) 重复次数
from 表A ) t
group by t.重复次数>=2
-------->修正:
where t.重复次数>=2
统计结果为 序号 身份证号 姓名 重复次数(取表A中的人,如果该人是在表B中重复则取表B的数据)
------------------------------->
select t1.*
from (select 序号,身份证号,姓名,count(*)over(order by 身份证号) 重复次数
from 表B ) t1
where t1.重复次数>=2unionselect t2.*
from (select 序号,身份证号,姓名,count(*)over(order by 身份证号) 重复次数
from 表A ) t2
where t2.重复次数>=2
and t2.身份证号 not in
(
select t3.身份证号
from (select 序号,身份证号,姓名,count(*)over(order by 身份证号) 重复次数
from 表B ) t3
where t3.重复次数>=2
)
统计结果为 续号 身份证号 姓名,重复次数 (只取一个人的就可以)
select 续号 ,身份证号, 姓名,重复次数
from
(
select 续号 ,身份证号, 姓名,
count(*) 重复次数,
row_number() over (partition by 身份证号 order by 续号,姓名) rowid
from a
)
where 重复次数 = 2
(select 续号,身份证号, 姓名,
row_number() over (partition by 身份证号order by 续号,姓名) rank
from a) a1, (select 身份证号,
count(*) 重复次数
from a group by 身份证号) b
where a1.rank=2 and a1.身份证号=b.身份证号
>count(*)over(order by 身份证号)并不是取重复次数呀
对,不是取的重复数,启的别名不好,控制重复的在外层,判断这个别名子段>=2.
两个表统计,用Union all ,再group by 加Having