这是我修改hongqi162(失踪的月亮) 的
------建立表-------------
create table t1(id int, name varchar(10), address int)
insert into t1
select 1,'a',1 union all
select 2,'a',2 union all
select 3,'a',1 union all
select 4,'a',3 union all
select 5,'b',2 union all
select 6,'b',2 union all
select 7,'b',3 union all
select 8,'b',1 union all
select 9,'c',1 union all
select 10,'d',2
--------------------
-------查询------------
SELECT * FROM t1 T WHERE EXISTS(
SELECT name,name
FROM T1
GROUP BY name,address
HAVING COUNT('id')>1
AND T.name=name AND T.address=address)
-----------------------
--------查询结果--------
1 a 1
3 a 1
5 b 2
6 b 2
------------------
create table t11(id int, name varchar2(10), address int);
insert into t11
select 1,'a',1 from dual union all
select 2,'a',2 from dual union all
select 3,'a',1 from dual union all
select 4,'a',3 from dual union all
select 5,'b',2 from dual union all
select 6,'b',2 from dual union all
select 7,'b',3 from dual union all
select 8,'b',1 from dual union all
select 9,'c',1 from dual union all
select 10,'d',2 from dual;
select distinct a.* from t11,t11 a
where t11.id<>a.id and t11.name=a.name and t11.address =a.address;
select t.id,t.name,t.address
from tablename t,
(
select ta.name,ta.address
from tablename ta
group by ta.name,ta.address
having count(*) > 1
)tt
where t.name = tt.name
and t.address = tt.address;
--测试数据
create table t1(id int, name varchar2(10), address int)
insert into t1
select 1,'a',1 from dual union all
select 2,'a',2 from dual union all
select 3,'a',1 from dual union all
select 4,'a',3 from dual union all
select 5,'b',2 from dual union all
select 6,'b',2 from dual union all
select 7,'b',3 from dual union all
select 8,'b',1 from dual union all
select 9,'c',1 from dual union all
select 10,'d',2 from dual;
--执行查询
SELECT * FROM t1 T WHERE EXISTS(
SELECT name,name FROM T1 GROUP BY (name,address) HAVING COUNT('id')>1
AND T.name=name AND T.address=address);
--查询结果
1 a 1
3 a 1
5 b 2
6 b 2
a数据库,b表内容为:
id name address
1 a 1
2 a 2
3 a 1
4 a 3
5 b 2
6 b 2
7 b 3
8 b 1
9 c 1
10 d 2
我想取得的表为:
id name address
1 a 1
3 a 1
5 b 2
6 b 2
想从表b中以name取重复记录并分组,再取address重复记录!
这只是举例,实际表更复杂!
不知道sql语句怎样写?
create table table1(a char(10),b integer);
insert into table1 values('a',1);
insert into table1 values('a',2);
insert into table1 values('a',1);
insert into table1 values('a',3);
insert into table1 values('b',1);
insert into table1 values('b',2);
insert into table1 values('b',4);
insert into table1 values('b',2);
commit;
SELECT * FROM TABLE1 T WHERE EXISTS(
SELECT A,B FROM TABLE1 GROUP BY (a,b) HAVING COUNT('X')>1
AND T.A=A AND T.B=B);