2012-06-01 41 views
3

我簡化了表格,以便更容易理解。如何找到與定義值匹配的確切組?

我有一個表與組和一個組存在多個值。這裏是表格:

VALUE | GROUP 
    A | 1 
    B | 1 
    A | 2 
    C | 2 
    B | 3 
    A | 4 
    B | 4 
    A | 5 
    B | 5 
    C | 5 

我想爲我的查詢賦予值,我以編程方式構建並找到與這些值匹配的確切組。

例如,如果我給值A和B我的查詢我想,結果第1組和第4

A ---------------> null 
A and B ----------> 1 and 4 
A , B and C ------> 5 
B ---------------> 3 
A and C ----------> 2 
C ----------------> null 
+0

您已經嘗試了哪些查詢? – Sean

+0

請解釋規則。例如,爲什麼A或C爲NULL。 –

+1

@PreetSangha:因爲沒有隻包含'A'或只包含'C'的組。 – Quassnoi

回答

3

您可以使用類似下面的查詢(假設值,組對唯一的):

select `GROUP` 
from MyTable 
group by `GROUP` 
having count(`VALUE`) = count(case when `VALUE` IN ('a','b') then 1 end) 
    and count(case when `VALUE` IN ('a','b') then 1 end) = @Count; 

('a','b')將是你測試值列表,並@Count將是您覈對設定不同的值(在這種情況下2)的計數。

演示:http://www.sqlfiddle.com/#!2/78def/13

+0

哇,這正是我需要的;非常感謝! – Jspr