我有一個表T1,有兩列C1和C2,在這些列中有數字,他們可以重複。 樣品:我不知道如何在SQL查詢
C1 | C2
-------
10 | 8
11 | 8
12 | 10
10 | 2
11 | 10
14 | 2
我需要找到具有8和2中的列C2的值的列C1的數量。在這個例子中,查詢應該返回10. 我解釋過了嗎?有人可以幫我嗎?
我有一個表T1,有兩列C1和C2,在這些列中有數字,他們可以重複。 樣品:我不知道如何在SQL查詢
C1 | C2
-------
10 | 8
11 | 8
12 | 10
10 | 2
11 | 10
14 | 2
我需要找到具有8和2中的列C2的值的列C1的數量。在這個例子中,查詢應該返回10. 我解釋過了嗎?有人可以幫我嗎?
最簡單的方法是
select
c1 from table_name
where c2 in (2,8)
group by c1
having count(*) = 2
它工作得很好。非常感謝。 –
您需要計數(DISTINCT c2)= 2。 – jarlh
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);
區別不是列上的函數,它適用於整個選定的行!改寫SELECT DISTINCT y.c1! (select distinct(c1),c2 eq。select distinct c1,c2 eq select distinct c1,(c2)...) – jarlh
我不知道,那意味着只要您想添加c2,就會停止工作對於兩行,看到它將返回兩個匹配 –
在您的例子中,對不重複。 – Strawberry
他說數字可以重複,而不是對,我認爲每個C1有一個最大發生率爲2 –