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?

CROSSJOIN

指定されたセットのクロス積で形成されたタプルのセットを返します。

返りタイプ

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

構文および詳細

CROSSJOIN(set_expression1, set_expression2)

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

  • set_expression1 および set_expression2 は、メンバセットに対して評価される式です。

    これらのセットのうち、数字に評価されるメジャーまたは式を含めることができるのは 1 つのみであることに注意してください。数字に評価されるメジャーまたは式が両方のセットに含まれる場合、DeepSee エンジンによって [Two measures cannot be crossjoined] というエラーが出力されます。

この関数は、各セットのすべてのメンバを識別し、最初のセットの各メンバと 2 番目のセットの各メンバを組み合わせるタプルのセットを生成します。

Tip:

キーワード句 NON EMPTY は、この関数で特に有効です。このキーワード句は、任意のセット式の直前に使用できることに注意してください。

以下はその例です。

SELECT MEASURES.[%COUNT] ON 0, CROSSJOIN(diagd.MEMBERS, aged.[age group].MEMBERS) ON 1 FROM patients

                             Patient Count
 1 None->0 to 29                      3,839
 2 None->30 to 59                     3,615
 3 None->60+                            971
 4 asthma->0 to 29                      308
 5 asthma->30 to 59                     282
 6 asthma->60+                          113
 7 CHD->0 to 29                           1
 8 CHD->30 to 59                         93
 9 CHD->60+                             229
10 diabetes->0 to 29                     30
11 diabetes->30 to 59                   246
12 diabetes->60+                        228
13 osteoporosis->0 to 29                  *
14 osteoporosis->30 to 59                 *
15 osteoporosis->60+                    200

一方、NON EMPTY キーワード句を追加すると以下のようになります。

SELECT MEASURES.[%COUNT] ON 0, NON EMPTY CROSSJOIN(diagd.MEMBERS, aged.[age group].MEMBERS) ON 1 FROM patients

                             Patient Count
 1 None->0 to 29                      3,839
 2 None->30 to 59                     3,615
 3 None->60+                            971
 4 asthma->0 to 29                      308
 5 asthma->30 to 59                     282
 6 asthma->60+                          113
 7 CHD->0 to 29                           1
 8 CHD->30 to 59                         93
 9 CHD->60+                             229
10 diabetes->0 to 29                     30
11 diabetes->30 to 59                   246
12 diabetes->60+                        228
13 osteoporosis->60+                    200

別の例を示します。

SELECT CROSSJOIN([GenD].[H1].[Gender].Members,
{[Measures].[%COUNT],[Measures].[Avg Age]}) ON 0,[DiagD].[H1].[Diagnoses].Members ON 1 
FROM [Patients]
 
                  Patient Coun        Avg Age   Patient Coun        Avg Age
1 None                      419          35.61            412          32.36
2 asthma                     51          37.12             33          27.79
3 CHD                        17          70.47             19          62.42
4 diabetes                   25          63.96             21          57.67
5 osteoporosis               20          80.55              2          74.50

関連項目

FeedbackOpens in a new tab