这个问题在这里已有答案:
有一个表“喜欢”字段“ID1”和“ID2”,其中有互斥的对,我想找到它们我通过连接尝试它,它没有工作,我不知道为什么enter image description here
通常你会将GROUP BY [column]
与HAVING COUNT([column|*]) >= [number]
结合使用来查找列中的重复项
SELECT
name
FROM
Highschooler
GROUP BY
name
HAVING
COUNT(*) >= 2
ORDER BY
name ASC
如果您需要有关高中学生的更多信息,您需要再次加入。
SELECT
Highschooler.*
FROM (
SELECT
name
FROM
Highschooler
GROUP BY
name
HAVING
COUNT(*) >= 2
ORDER BY
name ASC
)
AS name_duplicated
INNER JOIN
Highschooler
ON
name_duplicated.name = Highschooler.name
如果我正确地解释了你的问题,你可以这样做:
SELECT name
FROM highschooler
GROUP BY name
HAVING count(*) > 1
它返回在highschooler
表中多次出现的所有名称
如果您尝试以任何顺序查找重复对,则可能有很多方法可以执行此操作。这是一个:
create table likes(id1,id2);
insert into likes values
(1689,1709),
(1709,1689),
(1782,1709),
(1911,1247),
(1247,1468),
(1641,1468),
(1316,1304),
(1501,1934),
(1934,1501),
(1025,1101);
select min(id1,id2)||'-'||max(id1,id2) as pairs
from likes
group by pairs
having count(*) > 1;