如何通过oracle的sql找出同时存在某字段两个值的所有id号??

img

现在oracle数据量大概几十万行,有很多id号,有的id对应的type值为‘银行承兑’,有的type对应值为‘应付账款’,现在的需求就是找出type字段值既有'银行承兑'也有'应付账款'的所有id,也就是过滤掉所有只有银行承兑或者只有应付账款的id,如图标黄的id编号为10005,10006,10007,10008就是需要查询出来的数据,其他的就是需要过滤掉的数据,请问下,这种SQL在oracle上该怎么写?

对id,type进行分组,然后再统计count(id)=2的结果。

该问题可以通过count(distinct type) 进行解决,具体的写法如下:

create table bank_test(
  id varchar(10),
  type varchar(50)
);  --  声明表结构,用于理解sql

select id ,count(distinct type) from bank_test group by id having count(distinct type) > 1;