使用A列在B列中查找重复项?

时间:2013-10-16 21:12:05

标签: sql postgresql

我有一张看起来像这样的桌子(对于可怕的桌子而言很抱歉)

bnavn   | emnekode | grnr      
------------------------------
moetd   | inf1300  | gruppe10
moetd   | inf2220  | gruppe10       
amirf   | inf1300  | gruppe7    
amirf   | inf2220  | gruppe7    
hannams | inf1300  | gruppe1    
ninacma | inf2220  | gruppe3    

我需要

答:返回emnekode为inf1300&的bnavn。 inf 2220(很容易)

B:返回bnavn,其中grnr为inf1300& inf2220是重复的。

我在做B部分时遇到了麻烦 - 我尝试了JOIN和WHERE EXISTS,但似乎没有任何工作正常。

到目前为止我的代码是:

 SELECT DISTINCT bnavn
 FROM emnestud
 WHERE emnekode IN ('inf1300', 'inf2220')

我在设置下一部分时遇到了很多麻烦,并希望得到任何帮助。

3 个答案:

答案 0 :(得分:1)

SELECT bnavn
 FROM emnestud
 WHERE emnekode IN ('inf1300', 'inf2220')
group by bnavn
having count(1)>1

答案 1 :(得分:0)

此代码返回为emnekode重复的行

SELECT emnekode
 FROM emnestud
GROUP BY emnekode
HAVING
 COUNT(*) > 1

这对你有帮助吗?

答案 2 :(得分:0)

试试这个:

SELECT DISTINCT bnavn 
FROM emnestud 
WHERE grnr in(
  SELECT grnr
   FROM emnestud
    WHERE emnekode IN ('inf1300', 'inf2220')
    GROUP BY grnr
    HAVING COUNT(1)>1);

SQLFIDDLE