1

我可以选择所有具有相同列值的行(例如 SSN 字段),但可以单独显示它们。?

我已经搜索了这个答案,但它们都有“计数(*)和分组依据”部分,要求行完全相同。

4

4 回答 4

2

试试这个:

SELECT A, B FROM MyTable
WHERE A IN
(
    SELECT A FROM MyTable GROUP BY A HAVING COUNT(*)>1
)

我已经完成了 SQL 服务器。但希望这是你需要的

在此处输入图像描述

于 2012-09-25T11:03:53.720 回答
2

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

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
于 2012-09-25T12:16:04.380 回答
0
SELECT
    *
FROM
    MyTable
WHERE
    EXISTS
    (
        SELECT
            NULL
        FROM
            MyTable MT
        WHERE
            MyTable.SameColumnName = MT.SameColumnName
        AND MyTable.DifferentColumnName <> MT.DifferentColumnName)
于 2012-09-25T11:02:29.603 回答
0

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

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

ORDER BY SSN 

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

于 2012-09-25T11:13:57.970 回答