查找多次出现的记录?

时间:2014-06-17 03:26:57

标签: sql sql-server sql-server-2008

我有这样一张桌子

Acode  Bcode

100     4
101     3
100     8
105     4
105     8
104     1
109     8
110     3
109     8

我想知道哪个是Acode属于多个Bcode之类的 100属于4以及8和105属于4以及8等等。

3 个答案:

答案 0 :(得分:2)

试试这个

SELECT Acode, COUNT(Bcode) 
FROM TableName
GROUP BY Acode
HAVING COUNT(Bcode) > 1

答案 1 :(得分:1)

试试这个

SELECT Acode,Count(Acode)
FROM TABLE1
GROUP BY Acode 
HAVING Count(Acode) > 1

如果你想找出哪个是Acode属于多个Bcode 那么

试试这个

SELECT T.ACode,T.BCode,S.Acode
FROM table1 T JOIN
(
  SELECT Acode,Count(Acode) As CCode
  FROM TABLE1
  GROUP BY Acode 
  HAVING Count(Acode) > 1
) As S ON S.ACode = T.ACode

<强> FIDDLE DEMO

输出


ACODE   BCODE
100     4
100     8
105     4
105     8
109     8
109     8

答案 2 :(得分:0)

试试这个......应该有所帮助。这将显示ACODE和BCODE

SELECT A.ACODE, A.BCODE
  FROM myTable A
 WHERE EXISTS (SELECT B.ACODE
                 FROM myTable B
                WHERE B.ACODE = A.ACODE
                  AND B.BCODE <> A.BCODE );

如果您只需要ACODE和COUNT,那么这将有所帮助:

SELECT ACODE, COUNT(BCODE) 
FROM MYTABLE
GROUP BY ACODE
HAVING COUNT(BCODE) > 1