求SQL语句两个表,求差,有重复数据
A表========== B==========
1 100 1 100
1 100 1 100
1 100 1 100
1 100 2 200
1 100
2 200
2 200
3 300
...
查询出来结果
1 100
1 100
2 200
3 300
..
[解决办法]
with A as
(
select 1 a,100 b from dual union all
select 1,100 from dual union all
select 1,100 from dual union all
select 1,100 from dual union all
select 1,100 from dual union all
select 2,200 from dual union all
select 2,200 from dual union all
select 3,300 from dual
),
B as
(
select 1 a,100 b from dual union all
select 1,100 from dual union all
select 1,100 from dual union all
select 2,200 from dual
)
select a,b from (
select a,b,row_number()over(partition by a order by b) from A
minus
select a,b,row_number()over(partition by a order by b) from b
)
A B
---------- ----------
1 100
1 100
2 200
3 300