我需要查找符合特定條件的任何組的所有行。如何檢查一組行中是否有至少一個特定值
我將組定義爲在「組」列中共享值的多行。
相關組必須包含至少一行且合格設置爲true,並且該組中至少有兩行必須在除組或合格之外的任何列中彼此不同。
示例表
Group LastName FirstName Eligible
==========================================
1 Smith John True
1 Smith John False
2 Doe Beth True
2 Doe Jane False
2 Doe Jane False
3 Ward Bill True
4 Adams Sally True
4 Grimes Sally True
所需的結果
Group LastName FirstName Eligible
==========================================
2 Doe Beth True
2 Doe Jane False
2 Doe Jane False
4 Adams Sally True
4 Grimes Sally True
下面的查詢讓我接近
SELECT *
FROM ExampleTable
WHERE Group in
(SELECT Group
FROM ExampleTable
GROUP BY Group
HAVING count(distinct LastName) > 1 or count(distinct FirstName) > 1)
的問題是,它返回的結果太多,因爲它沒有考慮到是否將該組中的一條記錄標記爲符合條件。
我可能錯過了一些簡單的事情,但我無法弄清楚如何檢查組中的一條記錄是否將合格設置爲true,而不檢查它們是否都設置爲true。