xという名前のテーブルがあります。データは以下の通りです。私は現在、不連続なデータを識別するために、次のクエリを使用し連続した不連続な日付範囲を特定します
Acccount_num start_dt end_dt
A111326 02/01/2016 02/11/2016
A111326 02/12/2016 03/05/2016
A111326 03/02/2016 03/16/2016
A111331 02/28/2016 02/29/2016
A111331 02/29/2016 03/29/2016
A999999 08/25/2015 08/25/2015
A999999 12/19/2015 12/22/2015
A222222 11/06/2015 11/10/2015
A222222 05/16/2016 05/17/2016
両方A111326 A111331とは、連続したデータとして識別されなければならないとA999999と
A222222は、私のコードdata.In不連続として識別されなければなりません。また、A111326は不連続なデータとして誤って識別されます。 A111326が不連続なデータとして識別されないように、以下のコードを変更するのを手伝ってください。事前に助けていただきありがとうございます。あなたの問題の
(SELECT account_num
FROM (SELECT account_num,
(MAX (
END_DT)
OVER (PARTITION BY account_num
ORDER BY START_DT))
START_DT,
(LEAD (
START_DT)
OVER (PARTITION BY account_num
ORDER BY START_DT))
END_DT
FROM x
WHERE (START_DT + 1) <=
(END_DT - 1))
WHERE START_DT < END_DT);
おかげで解決のためにたくさん。それは本当に働いた。私は連続して重複するデータを持っていますが、これはうまくいきます。 – manj
はい私はそれが連続として数えられるようにするために重複に気付いたときにクエリを変更しました。将来的に重なり合った変更> = Start_Dt - 1〜= Start_Dt - 1を含めたくない場合は、それを受け入れることができたらうれしいです。http://meta.stackexchange.com/questions/5234/how-does-accept-an-answer-work) – Matt
行「E」、日付「2016-01-01」、日付「2016-01-02」を試してください。 '' E '、DATE' 2016-01-05 '、DATE' 2016-01-06''; 'E '、DATE' 2016-01-03 '、DATE' 2016-01-07 'のように、実際に'連続しているときは 'discontiguous'を出力します。 – MT0