2017-05-16 4 views
-1

私はこのテーブルを持っている:同じ2つの列を持つ表に重複行をリストするにはどうすればよいですか?

CREATE TABLE [dbo].[Phrase] (
    [PhraseId]    UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL, 
    [English]    NVARCHAR (250) NOT NULL, 
    [Kanji]     NVARCHAR (250) NULL, 
    PRIMARY KEY CLUSTERED ([PhraseId] ASC)); 

私がやりたい何が(英語と漢字で)すべての重複行の重複を検出するために使用される列のリストを取得することです。言い換えれば

このような行がある場合:私はこの試みる

aa  bb 
aa  dd 
+0

[SQLテーブル内の重複値を求める]の可能な重複(http://stackoverflow.com/questions/2594829/finding-duplicate-values-in-a-sql-table) –

+1

この質問は何度も答えられています。あなたは既にそれも尋ねました:http://stackoverflow.com/questions/44001073/how-can-i-list-duplicate-values-out-of-a-table –

答えて

2

を示すレポート取得したいと思い

English Kanji 

aa  bb 
aa  cc 
aa  bb 
aa  dd 
aa  ee 
aa  dd 

:ROW_NUMBERを(使用

select English,Kanji from Phrase 
group by English,Kanji 
having count(*)>1 
+3

良い答えですが、GROUP BYはHAVINGの前に来なければなりません – Eli

0

が)私たちはそれを行うことができます

;WITH CTE(English,Kanji) 
as 
(
select 'aa','bb' UNION ALL 
select 'aa','cc' UNION ALL 
select 'aa','bb' UNION ALL 
select 'aa','dd' UNION ALL 
select 'aa','ee' UNION ALL 
select 'aa','dd' 
) 
SELECT English 
    ,Kanji 
FROM (
    SELECT * 
     ,ROW_NUMBER() OVER (
      PARTITION BY English 
      ,Kanji ORDER BY English 
       ,Kanji 
      ) AS Seq 
    FROM CTE 
    ) dt 
WHERE dt.Seq <> 1 

アウトプット

English Kanji 
------------- 
aa  bb 
aa  dd 
関連する問題