2012-09-25 37 views
1

我可以選擇具有相同列值的所有行(例如SSN字段),但將它們全部分開顯示。 ?查找不完全相同的重複行

我已經搜索了這個答案,但他們都有「count(*)和group by」部分,要求行完全相同。

+0

plz提供樣品數據 –

回答

2

試試這個:

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

我與SQL服務器上完成。但希望這是你所需要的

enter image description here

+0

很酷,我一直在尋找 – aghaux

0
SELECT 
    * 
FROM 
    MyTable 
WHERE 
    EXISTS 
    (
     SELECT 
      NULL 
     FROM 
      MyTable MT 
     WHERE 
      MyTable.SameColumnName = MT.SameColumnName 
     AND MyTable.DifferentColumnName <> MT.DifferentColumnName) 
0

這將獲取所需的數據,並顯示他們爲了讓我們可以看到分組數據一起。

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

ORDER BY SSN 

這裏SSN是來自類似值檢查的列名。

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 
相關問題