我在下面使用这些数据,并且我只想提取没有不完整的ID或'我'状态。
ID SUBJECT STATUS
1 Math C
1 Physics C
1 Chemistry I
2 Math I
2 Physics C
2 Chemistry I
3 Math C
3 Physics C
3 Chemistry C
你如何在SQL中编码,其中只有ID#3被拉,因为它是唯一一个没有' I'在其状态。
答案 0 :(得分:4)
您可以使用not exists
:
select *
from table t
where not exists (select 1 from table where id = t.id and STATUS = 'I');
您也可以使用group by
重新表达:
select id
from table
group by id
having count(distinct STATUS) = 1 and
sum(case when STATUS <> 'C' then 1 else 0 end) = 0;
答案 1 :(得分:2)
你可以使用&#34; NOT IN&#34;
Report_No Rank
18 3229 1
89-0119-87 2
180261292 3
180261292 3
18 3107 4
18A 7 A06 5
T18002415 6
T18002415 6
T18002415 6
0000000018-519 7
0000000018-519 7
0000000018-519 7
0000000018-519 7
0000000018-655 8
000000018-1002 9
000000018-1002 9
000000018-1002 9
000000018-5712 10
答案 2 :(得分:0)
您也可以这样做,
SELECT id
FROM tablename
GROUP BY id
HAVING MIN(status) = MAX(status)
AND MIN(status) = 'C';
/