2015-05-12 131 views
0

我有一個表T1,有兩列C1和C2,在這些列中有數字,他們可以重複。 樣品:我不知道如何在SQL查詢

C1 | C2 
------- 
10 | 8 
11 | 8 
12 | 10 
10 | 2 
11 | 10 
14 | 2 

我需要找到具有8和2中的列C2的值的列C1的數量。在這個例子中,查詢應該返回10. 我解釋過了嗎?有人可以幫我嗎?

+0

在您的例子中,對不重複。 – Strawberry

+0

他說數字可以重複,而不是對,我認爲每個C1有一個最大發生率爲2 –

回答

3

最簡單的方法是

select 
c1 from table_name 
where c2 in (2,8) 
group by c1 
having count(*) = 2 
+0

它工作得很好。非常感謝。 –

+1

您需要計數(DISTINCT c2)= 2。 – jarlh

0
SELECT DISTINCT y.c1 
FROM table_name x 
JOIN table_name y 
ON x.c1 = y.c1 
WHERE (x.c2 = 8 AND y.c2 = 2) OR (x.c2 = 2 AND y.c2 = 8); 
+0

區別不是列上的函數,它適用於整個選定的行!改寫SELECT DISTINCT y.c1! (select distinct(c1),c2 eq。select distinct c1,c2 eq select distinct c1,(c2)...) – jarlh

+0

我不知道,那意味着只要您想添加c2,就會停止工作對於兩行,看到它將返回兩個匹配 –