sql编写问题,求大虾。。。
主键 任务编号 企业编号 其他字段
1 rw001 Qy001 1
2 rw001 Qy002 1
3 rw001 Qy002 1
4 rw001 Qy005 1
5 rw002 Qy004 1
6 rw002 Qy004 1
7 rw002 Qy005 1
8 rw002 Qy008 1
9 rw003 Qy011 1
10 rw003 Qy012 1
11 rw003 Qy013 1
12 rw003 Qy014 1
查询:使用sql语句查询出在同一个 “任务编号”里面 “企业编号”重复 的企业编号和任务编号。
查询出的结果应该是:rw001 qy002
rw002 qy004
------最佳解决方案--------------------
select 任务编号,企业编号 from 你的表 group by 任务编号,企业编号 having count(*)>1;
------其他解决方案--------------------
楼上写法。。。。。 分数就平均分掉算了!
------其他解决方案--------------------简单的group 就好了
------其他解决方案--------------------
+1
------其他解决方案--------------------如果用子查询实现的话:
1. 创建测试数据库
CREATE TABLE "CUI_TEST"
( "ID" NUMBER(5,0) NOT NULL ENABLE,
"RW" VARCHAR2(20 BYTE),
"QY" VARCHAR2(20 BYTE),
CONSTRAINT "CUI_TEST_PK" PRIMARY KEY ("ID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 NOCOMPRESS LOGGING
TABLESPACE "USERS" ENABLE
) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
TABLESPACE "USERS" ;
2. insert 测试数据
insert into cui_test (id, rw, qy) values (1, 'rw001', 'Qy001');
insert into cui_test (id, rw, qy) values (2, 'rw001', 'Qy002');
insert into cui_test (id, rw, qy) values (3, 'rw001', 'Qy002');
insert into cui_test (id, rw, qy) values (4, 'rw001', 'Qy005');
insert into cui_test (id, rw, qy) values (5, 'rw002', 'Qy004');
insert into cui_test (id, rw, qy) values (6, 'rw002', 'Qy004');
insert into cui_test (id, rw, qy) values (7, 'rw002', 'Qy005');
insert into cui_test (id, rw, qy) values (8, 'rw002', 'Qy008');
insert into cui_test (id, rw, qy) values (9, 'rw003', 'Qy012');
insert into cui_test (id, rw, qy) values (10, 'rw003', 'Qy013');
insert into cui_test (id, rw, qy) values (11, 'rw003', 'Qy014');
commit;
3. 查询命令
select rw,
qy
from ( select count(1) num,
rw,