我有一个包含以下列的表格。
我需要找出那些拥有2个以上具有相同jobcategoryrowid的ApplicantRowid的人,而AssessmentTest应该至少有一行NULL与不同的Appstatusrowid。
结果应该与下表完全相同。
Rowid ApplicantRowid JobCategoryRowid AssessmentTestRowid AppstatusRowid
10770598 6952346 157 3 5
11619676 6952346 157 NULL 6
答案 0 :(得分:0)
select t.*
from
(
select ApplicantRowid, JobCategoryRowid
from tbl
group by ApplicantRowid, JobCategoryRowid
having count(AssessmentTestRowid) < count(*)
and count(distinct AppstatusRowid) > 1
) x
inner join t on t.ApplicantRowid = x.ApplicantRowid
and t.JobCategoryRowid = x.JobCategoryRowid
COUNT不包含NULL,因此count(AssessmentTestRowid) < count(*)
确保至少有一个NULL
count(distinct AppstatusRowid) > 1
确保有不同的AppstatusRowids