【发布时间】:2012-09-25 20:16:04
【问题描述】:
我可以选择所有具有相同列值的行(例如 SSN 字段),但可以单独显示它们。 ?
我已经搜索过这个答案,但它们都有“计数(*)和分组依据”部分,要求行完全相同。
【问题讨论】:
标签: sql oracle duplicates
我可以选择所有具有相同列值的行(例如 SSN 字段),但可以单独显示它们。 ?
我已经搜索过这个答案,但它们都有“计数(*)和分组依据”部分,要求行完全相同。
【问题讨论】:
标签: sql oracle duplicates
试试这个:
SELECT A, B FROM MyTable
WHERE A IN
(
SELECT A FROM MyTable GROUP BY A HAVING COUNT(*)>1
)
我已经完成了 SQL 服务器。但希望这是你需要的
【讨论】:
这是另一种方法,它只引用一次表,使用分析函数而不是子查询来获取重复计数它可能会更快;它也可能不会,具体取决于特定数据。
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
MyTable
WHERE
EXISTS
(
SELECT
NULL
FROM
MyTable MT
WHERE
MyTable.SameColumnName = MT.SameColumnName
AND MyTable.DifferentColumnName <> MT.DifferentColumnName)
【讨论】:
这将获取所需的数据并按顺序显示它们,以便我们可以一起查看分组数据。
SELECT * FROM TABLENAME
WHERE SSN IN
(
SELECT SSN FROM TABLENAMEGROUP BY SSN HAVING COUNT(SSN)>1
)
ORDER BY SSN
这里的 SSN 是进行相似值检查的列名。
【讨论】: