示例数据(Oracle DB)
HID Result ResultDate
6150 Interim 23-03-1990
6150 FINAL 24-03-1990
6150 Interim 25-05-1990
6180 Interim 30-08-2016
6190 Interim 31-08-2016
我被要求找到所有没有最终结果的HID。
预期的输出是
HID Result ResultDate
6180 Interim 30-08-2016
6190 Interim 31-08-2016
答案 0 :(得分:2)
这里有一个选项count
和case
:
select hid
from yourtable
group by hid
having count(case when result = 'FINAL' then 1 end) > 0
这会返回6180
和6190
,因为他们没有result = 'final'
的任何相应行。
根据您的修改,这里有一个使用not exists
的选项:
select *
from yourtable y
where not exists (
select 1
from yourtable y2
where y.hid = y2.hid and y2.result = 'FINAL'
)