COUNT (MDX)
指定されたセット内の要素数を返します。
返りタイプ
この関数は、数値を返します。
構文および詳細
COUNT(set_expression)
または、以下のようにします。
COUNT(set_expression,EXCLUDEEMPTY)
-
set_expression は、セットに対して評価される式です。
既定では、COUNT によってあらゆる空の要素が考慮され、空以外の要素と共にカウントされます。EXCLUDEEMPTY キーワードを使用すると、この関数は、空以外の要素の数を返します。
例
例えば、以下のクエリは、Home City レベルのメンバをカウントします。
SELECT COUNT(homed.city.MEMBERS) ON 0 FROM patients
COUNT
Results 9
次の例は、EXCLUDEEMPTY キーワードを使用した場合を示しています。まず、以下のクエリについて考えてみます。
SELECT aged.[age group].MEMBERS ON 0, diagd.MEMBERS ON 1 FROM patients WHERE MEASURES.[%COUNT]
0 to 29 30 to 59 60+
1 None 3,839 3,615 971
2 asthma 308 282 113
3 CHD 1 93 229
4 diabetes 30 246 228
5 osteoporosis * * 200
以下のクエリは、Diagnoses レベルのメンバの数をカウントします。
WITH SET myset AS 'diagd.MEMBERS'
SELECT COUNT(myset) ON 0 FROM patients
COUNT
All Patients 5
以下のクエリでは、Diagnoses レベルのメンバの数がカウントされ、WHERE 節を使用して 0 ~ 29 歳の年齢グループの患者のみが取得されます。
WITH SET myset AS 'diagd.MEMBERS'
SELECT COUNT(myset) ON 0 FROM patients WHERE aged.[0 to 29]
COUNT
5
見てわかるように、クエリが WHERE 節を使用していても、COUNT 関数は、以前と同じ値を返します。これは、既定では COUNT が空の要素を考慮するためです。
次のクエリは、上記のバリエーションですが、EXCLUDEEMPTY を使用しています。
WITH SET myset AS 'diagd.MEMBERS' SELECT COUNT(myset,EXCLUDEEMPTY) ON 0 FROM patients WHERE aged.[0 to 29]
COUNT
4
また別の例では、より一般的なメンバのセットではなく、スカラ項目のセットと共に COUNT を使用できます。
WITH SET test AS '{"item 1","item 2",23}'
SELECT COUNT(test) ON 0 FROM patients COUNT
All Patients 3