Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

%TIMEWINDOW

時刻ディメンジョンのメンバのうち、指定された範囲テンプレートと一致するメンバのセットを返します。

返りタイプ

この関数は、メンバセットを返します。

構文および詳細

%TIMEWINDOW(periodSet,rangeTemplateStart)

または、以下のようにします。

%TIMEWINDOW(periodSet,rangeTemplateStart,rangeTemplateEnd)

以下は、この指定の説明です。

  • periodSet は、時間レベルのメンバセットです。

  • rangeTemplateStart は、periodSet より下位レベルにある、同じ階層内の時間レベルのメンバです。

  • rangeTemplateEnd は、periodSet より下位レベルにある、同じ階層内の時間レベルの別のメンバです。指定された場合、rangeTemplateEnd は、rangeTemplateStart と同じ期間内にする必要があります (例えば、これら 2 つのメンバは、同じ年または同じ月に属する必要があります)。

    rangeTemplateEnd の既定値は rangeTemplateStart です。

DeepSee は、rangeTemplateStart から rangeTemplateEnd までのメンバのセットを生成し、これをテンプレートとして使用して時間ウィンドウを指定します。例えば、rangeTemplateStart が 2000 年 1 月で rangeTemplateEnd が 2000 年 6 月の場合、時間ウィンドウは、指定された任意の年の 1 月 1 日から 6 月 30 日までの日付で構成されます。

次にこの関数は、指定された periodSet の各メンバを検証し、それぞれに対して、指定された時間ウィンドウに入る子メンバを返します。

この関数は、WHERE 節または %FILTER 節の中での使用を目的にしています。この関数は、可能であれば、より高い時間レベルのメンバを返すように最適化されています。したがって、多数のメンバは返されません。

まず、以下のクエリは、%TIMEWINDOW を行として使用します。このクエリは誕生年を検証し、それぞれの年の 1 月 1 日から 1月 5 日 (両方の日を含む) に生まれた患者のみを選択します。

SELECT NON EMPTY %TIMEWINDOW(birthd.year.MEMBERS,birthd.[jan 01 1924],birthd.[jan 05 1924]) ON 1 
FROM patients 
 
 1 Jan 4 1918                             1
 2 Jan 3 1934                             1
 3 Jan 3 1937                             1
 4 Jan 4 1937                             1
 5 Jan 2 1938                             1
 6 Jan 1 1940                             1
 7 Jan 1 1941                             1
 8 Jan 4 1947                             1
 9 Jan 5 1947                             1
10 Jan 2 1949                             1
11 Jan 1 1953                             1
...

この例では、範囲テンプレートは、1924 年の日付を任意に参照します。代わりにどの年を使用することもできます。

既述のとおり、この関数は主にフィルタ処理のためのものです。以下のクエリは、指定された任意の年の 1 月 1 日から 1 月 5 日に生まれた患者をすべて選択するだけのものです。

SELECT MEASURES.[%COUNT] ON 0 FROM patients 
WHERE %TIMEWINDOW(birthd.year.MEMBERS,birthd.[jan 01 1924],birthd.[jan05 1924]) 
                             Patient Count
                                        806

以下のクエリは、同じフィルタを使用しますが、患者を誕生年別にグループ化して表示します。

SELECT MEASURES.[%COUNT] ON 0, NON EMPTY birthd.year.MEMBERS on 1 
FROM patients 
WHERE %TIMEWINDOW(birthd.year.MEMBERS,birthd.[jan 01 1924],birthd.[jan05 1924])
 
                             Patient Count
 1 1918                                   1
 2 1934                                   1
 3 1937                                   2
 4 1938                                   1
 5 1940                                   1
 6 1941                                   1
 7 1947                                   2
 8 1949                                   1
 9 1953                                   1
...

結果を理解しやすくするために、以下のクエリは %LABEL を使用して、わかりやすいキャプションを適用します。

SELECT %LABEL(MEASURES.[%COUNT],"Born Jan 1-5") ON 0, NON EMPTY birthd.year.MEMBERS on 1 
FROM patients 
WHERE %TIMEWINDOW(birthd.year.MEMBERS,birthd.[jan 01 1924],birthd.[jan 05 1924])
 
                              Born Jan 1-5
 1 1918                                   1
 2 1934                                   1
 3 1937                                   2
 4 1938                                   1
 5 1940                                   1
 6 1941                                   1
 7 1947                                   2
 8 1949                                   1
 9 1953                                   1
...
FeedbackOpens in a new tab