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?

FILTER

セットを検証し、指定された式が要素ごとに True となるサブセットを返します。セットの順序は変わりません。

返りタイプ

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

構文および詳細

FILTER(set_expression, logical_expression)
  • set_expression は、セットに対して評価される式です。

  • logical_expression論理式で、通常はメジャー値またはプロパティ値を検証します。

    logical_expression の代わりに、メジャー検索式を使用できます。この場合の FILTER の動作については、例を参照してください。

例えば、以下のクエリを考えてみます。これは、患者数が 1150 人より多い市町村のみを返します。

SELECT MEASURES.[%COUNT] ON 0, 
FILTER(homed.city.MEMBERS, MEASURES.[%COUNT]>1150) ON 1 FROM patients
                             Patient Count
1 Cedar Falls                         1,188
2 Centerville                         1,155
3 Cypress                             1,221
4 Elm Heights                         1,266
5 Juniper                             1,197
6 Magnolia                            1,156

一方、以下のクエリを考えてみます。これは、患者数に関係なく、患者のいる市町村を返します。

SELECT MEASURES.[%COUNT] ON 0, 
FILTER(homed.city.MEMBERS, MEASURES.[%COUNT]>=0) ON 1 FROM patients

                             Patient Count
1 Cedar Falls                         1,188
2 Centerville                         1,155
3 Cypress                             1,221
4 Elm Heights                         1,266
5 Juniper                             1,197
6 Magnolia                            1,156
7 Pine                                1,139
8 Redwood                             1,144
9 Spruce                              1,135

別の例として、以下のクエリは、より複雑なフィルタ式を使用しています。

SELECT MEASURES.[%COUNT] ON 0, 
FILTER(diagd.members, (MEASURES.[%COUNT]>500 and MEASURES.[%COUNT]<1000)) ON 1 
FROM patients

                             Patient Count
1 asthma                                746
2 diabetes                              555

次の例は、プロパティを評価するフィルタ式を使用しています。

SELECT homed.CURRENTMEMBER.PROPERTIES("Population") ON 0, 
FILTER(homed.city.MEMBERS,homed.CURRENTMEMBER.PROPERTIES("Population")>20000) ON 1 FROM patients

                                       ZIP
1 Cedar Falls                        90,000
2 Centerville                        49,000
3 Elm Heights                        33,194
4 Redwood                            29,192

FILTER をメジャー検索式で使用する場合、この関数は、指定された条件を満たした少なくとも 1 つのファクトに基づくメンバのみを返します (メジャー検索式は、インターシステムズによる MDX への拡張機能で、ファクト・テーブル自体のメジャー値を考慮するものです)。

SELECT {MEASURES.[%COUNT]} ON 0, FILTER(diagd.members, %SEARCH.&[[MEASURES].[age]<10]) ON 1 FROM patients

                             Patient Count
1 None                                8,425
2 asthma                                703

このクエリは、10 歳未満の少なくとも 1 人の患者がいる診断を示しています。その他、糖尿病や骨粗しょう症などの診断では、このような若い患者はいません。

関連項目

FeedbackOpens in a new tab