我不知道如何在SQL查询

问题描述:

我有一个表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 –

最简单的方法是

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

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

+1

您需要计数(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); 
+0

区别不是列上的函数,它适用于整个选定的行!改写SELECT DISTINCT y.c1! (select distinct(c1),c2 eq。select distinct c1,c2 eq select distinct c1,(c2)...) – jarlh

+0

我不知道,那意味着只要您想添加c2,就会停止工作对于两行,看到它将返回两个匹配 –