sql编写问题,求大虾。。。主键任务编号企业编号其他字段1rw001Qy00112rw001Qy00213rw001Qy00214rw001Qy00515r
sql编写问题,求大虾。。。
主键任务编号企业编号其他字段
1rw001Qy0011
2rw001Qy0021
3rw001Qy0021
4rw001Qy0051
5rw002Qy0041
6rw002Qy0041
7rw002Qy0051
8rw002Qy0081
9rw003Qy0111
10rw003Qy0121
11rw003Qy0131
12rw003Qy0141
查询:使用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,
qy
from cui_test
group by rw, qy
)
where num > 1
[其他解释]
select 任务编号,企业编号
from
(
select 任务编号,企业编号,row_number() over(partition by 任务编号,企业编号 order by 主键) rn
from 表名
)
where rn = 2
[其他解释]
这个可以
[其他解释]
select 任务编号,企业编号 from 你的表 group by 任务编号,企业编号 having count(*)>1;
我先想到的也是这个。求平分
[其他解释]
select 任务编号 企业编号 from 表名group by 任务编号 企业编号 having count(1)>1
