INTERSECT (MDX)
指定された 2 つのセットの両方にある要素で構成されたセットを返します。オプションで、そのセットにある重複を除外します。
返りタイプ
この関数は、セットを返します。
構文および詳細
INTERSECT(set_expression1, set_expression2, ALL)
または、以下のようにします。
INTERSECT(set_expression1, set_expression2)
-
set_expression1 および set_expression2 は、セットに対して評価される式です。
-
オプションのキーワード ALL が含まれている場合、これは、2 番目のセットにあるすべての重複を保持することを指定します。既定では、返されたセットに、重複する要素が含まれている場合、それらのうち最初の要素のみが含まれます。
このキーワードは、最初のセットにある重複には影響しません。
例
2 つの名前付きセットを定義する以下のクエリを考えてみます。
WITH SET set1 AS '{allerd.eggs,allerd.soy,allerd.wheat,allerd.wheat}'
SET set2 AS '{allerd.[dairy products],allerd.pollen,allerd.soy,allerd.wheat}'
SELECT MEASURES.[%COUNT] ON 0, INTERSECT(set1,set2) ON 1 FROM patients
Patient Count
1 soy 462
2 wheat 479
一方、ALL キーワードを使用している以下のバリエーションを考えてみます。
WITH SET set1 AS '{allerd.eggs,allerd.soy,allerd.wheat,allerd.wheat}'
SET set2 AS '{allerd.[dairy products],allerd.pollen,allerd.soy,allerd.wheat}'
SELECT MEASURES.[%COUNT] ON 0, INTERSECT(set1,set2,ALL) ON 1 FROM patients
Patient Count
1 soy 462
2 wheat 479
3 wheat 479
最後になりますが、より関心のあるセットを引数として使用することも、もちろんできます。以下はその例です。
WITH SET set1 AS 'TOPCOUNT(homed.city.members,5,MEASURES.[avg allergy count])'
SET set2 AS 'TOPCOUNT(homed.city.members,5,MEASURES.[avg age])'
SELECT MEASURES.[%COUNT] ON 0, INTERSECT(set1,set2) ON 1 FROM patients
Patient Count
1 Centerville 1,155
2 Magnolia 1,156