質問の言葉遣いが悪くて申し訳ありません。必要なものを正確に説明するのは難しいです。
私はこのクエリを使用しました:
select *
from table
where unique_id in (
select unique_id from table group by unique_id having count(*) > 1
)
次のような結果が得られます。
id date unique_id
12 3/3/2013 asdf1
13 3/4/2013 asdf1
14 3/5/2013 asdf1
15 3/6/2013 asdf1
16 3/8/2013 qwer2
17 3/9/2013 qwer2
18 3/10/2013 qwer2
19 3/11/2013 zxcv3
20 3/12/2013 zxcv3
21 2/2/2012 jkl
22 2/3/2012 jkl
22 2/4/2012 jkl
23 2/5/2012 jkl
24 2/5/2012 jkl
25 2/6/2012 jkl
26 2/7/2012 jkl
クエリでこれらの結果をさらに絞り込み、一致する unique_id の各セットの最初と最後の行を残してほしい
** 一致する unique_id の各セットで、結果は常に ID + 1 および日付 + 1 日のパターンに従います。
** count(*) > 1 を持つこの条件が 1 になるレコードはありません。
言い換えれば、クエリが返すのは次のとおりです。
12 3/3/2013 asdf1
15 3/6/2013 asdf1
16 3/8/2013 qwer2
18 3/10/2013 qwer2
19 3/11/2013 zxcv3
20 3/12/2013 zxcv3
21 2/2/2012 jkl
26 2/7/2012 jkl
ありがとう!