我不知道如何在SQL查询
我有一个表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 –