寻找互斥的对? [重复]

问题描述 投票:-1回答:3

这个问题在这里已有答案:

有一个表“喜欢”字段“ID1”和“ID2”,其中有互斥的对,我想找到它们我通过连接尝试它,它没有工作,我不知道为什么enter image description here

sqlite
3个回答
1
投票

通常你会将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

0
投票

如果我正确地解释了你的问题,你可以这样做:

SELECT name
FROM highschooler
GROUP BY name
HAVING count(*) > 1

它返回在highschooler表中多次出现的所有名称


0
投票

如果您尝试以任何顺序查找重复对,则可能有很多方法可以执行此操作。这是一个:

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;
© www.soinside.com 2019 - 2024. All rights reserved.