MS SQL 2008R2 を使用しています。部分的なデータ セット (つまり、すべての列ではない) を使用していますが、重複する行を除外できませんでした。たとえば、クレームの行は次のとおりです。
Claim Line Doctor Received Paid
02195111345 1 22924 1995-11-13 2001-10-02
02195111345 1 22924 1995-11-13 2001-10-02
02195111345 2 22924 1995-11-13 2001-10-02
02195111345 2 22924 1995-11-13 2001-10-02
02195111345 3 22924 1995-11-13 2001-10-02
02195111345 3 22924 1995-11-13 2001-10-02
02195111345 4 22924 1995-11-13 2001-10-02
02195111345 4 22924 1995-11-13 2001-10-02
02195111345 5 22924 1995-11-13 2001-10-02
02195111345 5 22924 1995-11-13 2001-10-02
請求と行ごとに 1 行だけ選択したいと考えています。追加の列がありますが、Claim + Line の各組み合わせについて同じ情報が含まれています。
次のようなクエリを使用して、重複のある行を簡単に識別できます。
SELECT [ClaimNum],[ClaimNum_Line]
FROM [dbo].[DamagedClaims]
GROUP BY [ClaimNum],[ClaimNum_Line]
HAVING COUNT(*) > 1
通常、このクエリを使用して派生テーブルを作成し、MAX(Version) などの別の列を使用してテーブルに結合しますが、重複を区別する列はありません。
検討しました
SELECT ClaimNum], Line, MAX(DOCTOR), MAX([Date Received]), MAX([Date Paid])
しかし、約 20 の列と 7 億 5000 万の行があり、それはかなりのオーバーヘッドのように思えました (私は SQL Server に非常に同情しています!)。より良い解決策はありますか?
ベスト、スコット