2016-06-22 13 views
1

ある選択は、私がこのようなデータを持っていると言う:複数の列のカウント()は1より大きい

ClaimID ClaimLine Date 
    1  1  22/06/2016 
    1  1  01/01/2016 
    2  1  08/06/2016 
    2  2  31/01/2015 
    3  1  23/03/2013 

私は最低の日付で重複ClaimIDsとClaimLineを選択するだろうか?

ので、戻り値を使用すると、重複排除、および各グループから最小の日付を選択する列によって

1,1,01/01/2016 
+0

西日本?または、最新の日付を除くすべての行が必要な場合(2行以上ある場合)それは違ったものになるでしょう。 – Solarflare

+0

まず、日付データ型を使用するように日付を修正します。 – Strawberry

+0

私は実際にMinを実行するためにINTを使用していますが、わかりやすいと思って日付を選択しました –

答えて

4

することができますグループのようになります。あなたはさらにだけしたい場合は

SELECT ClaimID, ClaimLine, MIN(Date) 
FROM Table 
GROUP BY ClaimID, ClaimLine 
ORDER BY ClaimID, ClaimLine 

複製されたClaimIDとClaimLinesを確認するには、HAVING句を追加することができます。

SELECT ClaimID, ClaimLine, MIN(Date) 
FROM Table 
GROUP BY ClaimID, ClaimLine 
HAVING COUNT(*) > 1 
ORDER BY ClaimID, ClaimLine 
+0

ClaimIDとClaimLineをグループ化していたときに本当に混乱しました。 GROUP BY ClaimIDとClaimLineのように、1つのレコードだけを戻していました。 –

+1

@AndrewKilburnは、あなたが選択していてグループ化していないが言及していない他のフィールドがある場合、取得する値は必ずしも 'MIN(日付)'を持つ行から得られるものではないことに留意してください。 – Uueerdo

関連する問題