有张表,四个字段,rec_id,code ,value ,psamid ,里面的数据有:
1 182 4484 1111
2 284 3833 2222
3 182 3443 1111
4 433 4434 4444
5 284 5444 2222
如上,1和3,2和5的code 和psamid的值是一样的,我现在想搜出的结果是:
1 182 4484 1111
3 182 3443 1111
2 284 3833 2222
5 284 5444 2222
或者说是只显示rec_id值小的记录:
1 182 4484 1111
2 284 3833 2222
请问,这样的SQL如何写?
oracle查询两个字段的值重复的记录
答案:3 悬赏:20
解决时间 2021-11-14 12:00
- 提问者网友:冰点阿弟
- 2021-11-13 21:24
最佳答案
- 二级知识专家网友:单身小柠`猫♡
- 2021-11-13 22:41
select * from tb where rec_id in (
select min(rec_id) from tb
group by code,psamid
having count(*)>1)
select min(rec_id) from tb
group by code,psamid
having count(*)>1)
全部回答
- 1楼网友:统治我的世界
- 2021-11-13 23:52
1和3,2和5的code 和psamid的值是一样的:
(code 和psamid有重复的值输出,没有重复的不输出(如第4条)):
select * from tab_name
where code IN ( select min (code) from tab_name
group by code,psamid
having count(code) >1)
只显示rec_id值小的记录:
(code 和psamid有重复的值输出,没有重复的不输出(如第4条)):
select min (code) from tab_name
group by code,psamid
having count(code) >1;
- 2楼网友:为你轻狂半世殇
- 2021-11-13 23:40
select max(t.rec_id) keep(dense_rank first order by t.value desc) rec_id, code, max(t.value) keep(dense_rank first order by t.value desc) value, max(t.psamid) keep(dense_rank first order by t.value desc) pasamid from test t group by code order by 1
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯