Quantcast
Channel: Microsoft SQL Server Japan Support Team Blog
Viewing all articles
Browse latest Browse all 293

MDX 関数 BOTTOMCOUNT 使用の際の注意事項

$
0
0

 

 

SQL Server Developer Support チーム

 

 

 

概要

MDX 関数の BOTTOMCOUNT を利用し、セットを指定した値で昇順に並び替える際、NULL となる値を FILTER する必要があります。

 

 

 

対処方法

 

前提

弊社 Adventure Works DW サンプルデータベースを基に、BOTTOMCOUNT を利用し、メジャーの Internet Sales Amount が最下位 3 つの [Product].[SubCategory] を返却する方法を案内します。

 

 

対象データ

 

[Product].[SubCategory] 別の Internet Sales Amount は以下の通り、NULL を含むレコードが含まれています。

 

clip_image001

 

上記から、NULL でない値を保持する最下位 3 位の [Product].[SubCategory] は次の通り、 Socks, Cleaners, Caps の 3 つです。

 

clip_image002

 

 

実装例

 

-- NULL を排除しない場合

次の結果の通り、NULL が最下位 3 つのレコードと認識されるため、NULL のレコードを保持する [Product].[SubCategory] が返されます。

 

SELECT

{[Measures].[Internet Sales Amount]} ON COLUMNS,

BOTTOMCOUNT(

[Product].[Subcategory].Members

,3

, [Measures].[Internet Sales Amount]

) ON ROWS

FROM

[Adventure Works]

 

 

clip_image003

 

 

-- NULL を排除する場合

 

NULL を排除するように、FILTER した場合、NULL のレコードを保持する [Product].[SubCategory] は排除されるため、NULL でない値を保持する最下位 3 位の [Product].[SubCategory] である、 Socks, Cleaners, Caps の 3 つが返されます。

 

SELECT

{[Measures].[Internet Sales Amount]} ON COLUMNS,

BOTTOMCOUNT(

FILTER([Product].[Subcategory].Members,

NOT ISEMPTY([Measures].[Internet Sales Amount]))

                ,3

                , [Measures].[Internet Sales Amount]

) ON ROWS

FROM       

[Adventure Works]

 

clip_image004

 

 

 

以上の通りです。


Viewing all articles
Browse latest Browse all 293

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>