Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查找不完全相同的重复行_Sql_Oracle_Duplicates - Fatal编程技术网

Sql 查找不完全相同的重复行

Sql 查找不完全相同的重复行,sql,oracle,duplicates,Sql,Oracle,Duplicates,我是否可以选择具有相同列值的所有行(例如SSN字段),但可以将它们分别显示 我已经搜索了这个答案,但它们都有count*和group by section,这要求行完全相同。试试这个: SELECT * FROM MyTable WHERE EXISTS ( SELECT NULL FROM MyTable MT WHERE MyTable.Sa

我是否可以选择具有相同列值的所有行(例如SSN字段),但可以将它们分别显示

我已经搜索了这个答案,但它们都有count*和group by section,这要求行完全相同。

试试这个:

SELECT
    *
FROM
    MyTable
WHERE
    EXISTS
    (
        SELECT
            NULL
        FROM
            MyTable MT
        WHERE
            MyTable.SameColumnName = MT.SameColumnName
        AND MyTable.DifferentColumnName <> MT.DifferentColumnName)
SELECT A, B FROM MyTable
WHERE A IN
(
    SELECT A FROM MyTable GROUP BY A HAVING COUNT(*)>1
)
我已经完成了SQL server。但希望这是你需要的

试试这个:

SELECT A, B FROM MyTable
WHERE A IN
(
    SELECT A FROM MyTable GROUP BY A HAVING COUNT(*)>1
)
我已经完成了SQL server。但希望这是你需要的


这将获取所需的数据并按顺序显示,以便我们可以一起查看分组的数据

SELECT * FROM TABLENAME
WHERE SSN  IN
(
    SELECT SSN FROM TABLENAMEGROUP BY SSN HAVING COUNT(SSN)>1
)

ORDER BY SSN 

这里SSN是进行类似值检查的列名。

这将获取所需数据并按顺序显示,以便我们可以一起查看分组数据

SELECT * FROM TABLENAME
WHERE SSN  IN
(
    SELECT SSN FROM TABLENAMEGROUP BY SSN HAVING COUNT(SSN)>1
)

ORDER BY SSN 

这里SSN是进行相似值检查的列名。

这里是另一种方法,它只引用表一次,使用分析函数而不是子查询来获取重复计数,这可能会更快;它也可能不会,这取决于特定的数据

SELECT * FROM (
  SELECT col1, col2, col3, ssn, COUNT(*) OVER (PARTITION BY ssn) ssn_dup_count
)
WHERE ssn_dup_count > 1
ORDER BY ssn_dup_count DESC

这里是另一种方法,只引用表一次,使用分析函数而不是子查询来获取重复计数,这可能会更快;它也可能不会,这取决于特定的数据

SELECT * FROM (
  SELECT col1, col2, col3, ssn, COUNT(*) OVER (PARTITION BY ssn) ssn_dup_count
)
WHERE ssn_dup_count > 1
ORDER BY ssn_dup_count DESC