表结构如下:loanid userid type
L1 ID1 0
L1 ID1 1
L2 ID1 1
L2 ID1 1
L2 ID1 1
L3 ID1 1
L3 ID1 0
L3 ID1 0
L4 ID2 0
L4 ID2 0
L4 ID2 1
L5 ID3 1
L6 ID2 0
L7 ID4 1查询要的表结果是:
userid type
ID1 1
ID4 1
条件:1 (例如,userID 为D1 的,loanid 的行数是不固定,),2 查询条件的 type =1
L1 ID1 0
L1 ID1 1
L2 ID1 1
L2 ID1 1
L2 ID1 1
L3 ID1 1
L3 ID1 0
L3 ID1 0
L4 ID2 0
L4 ID2 0
L4 ID2 1
L5 ID3 1
L6 ID2 0
L7 ID4 1查询要的表结果是:
userid type
ID1 1
ID4 1
条件:1 (例如,userID 为D1 的,loanid 的行数是不固定,),2 查询条件的 type =1
不知道我说明白了么!
针对ID1 这个数据:要统计处L2 这个数据按ID1分组
L1 ID1 0
L1 ID1 1
L2 ID1 1
L2 ID1 1
L2 ID1 1
L3 ID1 1
L3 ID1 0
L3 ID1 0
loanid userid type
L1 ID1 0
L1 ID1 1
L2 ID1 1
L2 ID1 1
L2 ID1 1
L3 ID1 1
L3 ID1 0
L3 ID1 0
L4 ID2 0
L4 ID2 0
L4 ID2 1
L5 ID3 1
L6 ID2 0
L7 ID4 1
============
这个是针对这个测试数据查询要的结果:
userid type
ID1 1
ID4 1
create table tb(loanid varchar(10), userid varchar(10), type int)
insert into tb values('L1' , 'ID1' , 0)
insert into tb values('L1' , 'ID1' , 1)
insert into tb values('L2' , 'ID1' , 1)
insert into tb values('L2' , 'ID1' , 1)
insert into tb values('L2' , 'ID1' , 1)
insert into tb values('L3' , 'ID1' , 1)
insert into tb values('L3' , 'ID1' , 0)
insert into tb values('L3' , 'ID1' , 0)
insert into tb values('L4' , 'ID2' , 0)
insert into tb values('L4' , 'ID2' , 0)
insert into tb values('L4' , 'ID2' , 1)
insert into tb values('L5' , 'ID3' , 1)
insert into tb values('L6' , 'ID2' , 0)
insert into tb values('L7' , 'ID4' , 1)
goselect m.* from tb m where not exists(select 1 from tb n where n.type <> 1 and n.loanid = m.loanid)
/*
loanid userid type
---------- ---------- -----------
L2 ID1 1
L2 ID1 1
L2 ID1 1
L5 ID3 1
L7 ID4 1(所影响的行数为 5 行)
*/
select distinct m.userid , m.type from tb m where not exists(select 1 from tb n where n.type <> 1 and n.loanid = m.loanid)
/*
userid type
---------- -----------
ID1 1
ID3 1
ID4 1(所影响的行数为 3 行)
*/ drop table tb