0

因此,在此表中的所有行中,我认为可能有两行对于给定字段具有相同的值。有没有办法确定是哪两行?

另外,我不知道价值是多少。

4

6 回答 6

4

如果您想知道给定列中哪些行具有相同的值,那么您可以使用以下命令找到重复的列

SELECT ColumnName, COUNT(*)
FROM   TableName
GROUP BY ColumnName
HAVING COUNT(*) > 1

这将向您显示重复的值。

于 2013-08-14T16:36:51.193 回答
3

如果您想知道行(而不是值),我会推荐窗口函数:

select t.*
from (select t.*, count(*) over (partition by col) as cnt
      from mytable t
     ) t
where cnt > 1;

这将返回实际的行,以及用于计数的附加列。

于 2013-08-14T16:57:51.493 回答
0

我更喜欢 Gordon 的回答,但另一种解决方法是:

SELECT T1.*, T2.ColCnt
    FROM Tab T1
    INNER JOIN (SELECT Col, Count(*) AS ColCnt
                FROM Tab T GROUP BY Col 
                HAVING Count(*) > 1) T2
    ON T1.Col = T2.Col
于 2013-08-14T18:26:10.763 回答
0

尝试类似:

SELECT * FROM Table1 AS Table INNER JOIN Table1 ON Table.ColumnToCompare=Table1.ColumnToCompare

如果两个“ColumnToCompare”具有相同的类型,这应该返回具有相同值的行。

于 2013-08-14T16:34:33.023 回答
0
 select count(*),Col1 From Table1 group by Col1 Having count(*)>1
于 2013-08-14T16:35:53.307 回答
0
select ColumnToCompare, count(ColumnToCompare)
from table
where count(ColumnToCompare) > 1
于 2013-08-14T16:36:08.050 回答