-1

各レコードの開始日から次の 30 日間のレコード数を見つけようとしています

私はテーブルを持っています:

Patid             Start_date
1234              1/1/2015
1234              1/10/2015
1234              1/30/2015
1234             2/19/2015
1234              3/5/2015
1234              3/6/2015
1234              3/7/2015 

次の結果が得られる単純なSQLクエリを作成したいと思います。

patid:            Start_Date       #of Records in Next 30 Days
1234              1/1/2015            2
1234              1/10/2015           2
1234              1/30/2015           1
1234              2/19/2015           3  
1234              3/5/2015            2
1234              3/6/2015            1
1234              3/7/2015            0

よろしく、サニー

4

1 に答える 1

1

一般的な SQL では、相関サブクエリを使用するのが最も簡単な方法です。

select t.*,
       (select count(*)
        from table t2
        where t2.patid = t.patid and
              t2.start_date > t.start_date and
              t2.start_date <= t.start_date + interval '30 days'
       ) as Next30Days
from table t;

これは、日付計算に ANSI 標準構文を使用します。これは、主に侵害で確認された標準です。各データベースには、日付をマッサージするための独自のルールがあるようです。

于 2015-02-06T20:50:35.880 に答える