-1

考虑以下情况,

No.         Name    Tag
 1          ABC     X1
 2          DEF     x1
 3          GHI     x1
 4          JKL     x2
 5          MNO     x3
 6          PQR     x4
 7          PQR     x4
 8          STU     x4
 9          VWX     X5
 10         YZI     x5

现在我需要找到具有相同名称和标签的重复项。

理想情况下,结果应该是

No.         Name    Tag
 6          PQR     x4
 7          PQR     x4
4

3 回答 3

3

这将适用于大多数 RDBMS,因为您没有指定一个。

SELECT  *
FROM    TableName a
WHERE   EXISTS
        (
            SELECT  1
            FROM    TableName b
            WHERE   a.name = b.Name AND
                    a.Tag = b.Tag
            GROUP   BY Name, Tag
            HAVING  COUNT(*) > 1
        )
于 2013-11-01T06:09:11.507 回答
1

在 MySQL 中,您可以这样使用一个棘手的 pairwhere子句:

SELECT * FROM t
WHERE (name, tag) IN (
  SELECT name, tag FROM t
  GROUP BY name, tag
  HAVING COUNT(*) > 1
)

在这里拉小提琴。

于 2013-11-01T06:17:46.190 回答
0

请试试:

SELECT b.* 
FROM (
    SELECT  Name, Tag
    FROM    YourTable
    GROUP   BY Name, Tag
    HAVING  COUNT(*) > 1
)x inner join YourTable b on x.Name=b.Name and x.Tag=b.Tag
于 2013-11-01T06:11:46.547 回答