Filter 过滤集上的MDX计数

Filter 过滤集上的MDX计数,filter,count,mdx,Filter,Count,Mdx,我有一个employee维度(22k行),它具有属性[country]、[region]。我的事实表[LastAccess]很简单,只是记录了员工的数据,度量值[RowCount]就是行数。我想统计一段时间内,按地区和国家分组,有多少员工登录该网站两次[两次访问],五次[五次访问],超过五次[更多访问]。在SQL中,我使用临时表统计每个员工的访问次数,然后使用类似查询的方式显示: SUM(IIF([Visits]=2,1,0)) AS [TwoVisits], SUM(IIF([Vis

我有一个employee维度(22k行),它具有属性[country]、[region]。我的事实表[LastAccess]很简单,只是记录了员工的数据,度量值[RowCount]就是行数。我想统计一段时间内,按地区和国家分组,有多少员工登录该网站两次[两次访问],五次[五次访问],超过五次[更多访问]。在SQL中,我使用临时表统计每个员工的访问次数,然后使用类似查询的方式显示:

 SUM(IIF([Visits]=2,1,0)) AS [TwoVisits],   
 SUM(IIF([Visits]=5,1,0)) AS [FiveVisits],
 SUM(IIF([Visits]>5,1,0)) AS [MoreVisits],    
 FROM @EmployeeVisits EVPM
 INNER JOIN [dbo].[tblEmployeeData] ED ON EVPM.[AltEmployeeId] = ED.         [AltEmployeeId]
按ED[业务区域],ED[国家代码]分组 结果应该是这样的:

Region  Country  TwoVisits   FiveVisits   More Visits
1     US          1261        1054         913    
2    IN          1829        1576         1441    
3    GB          344          281         237 
我提出了如下问题:

WITH 
MEMBER [Measures].[twoVisits] AS 
case when ([Measures].[Last Access 1 Count]) =2
    then 1
    else 0
end
MEMBER [Measures].[twoVisitsCount] AS
SUM([Employee].[Alt Employee Id].[Alt Employee Id].Members, [Measures].    [twoVisits])

SELECT  
{[Measures].[twoVisitsCount]}ON 0,
NON EMPTY ({[Employee].[Business Region].&    [1],[Employee].[Business Region].&[2],[Employee].[Business Region].&[3]},
{[Employee].[Country Code].[Country Code].Members}) ON 1
FROM 
 (
     select(
        {[Employee].[Status Id].&[1],[Employee].[Status Id].&[3],[Employee].[Status Id].&[4]},          
        {[Employee].[Employee Type].&[13],[Employee].[Employee Type].&[29],
        [Employee].[Employee Type].&[9],[Employee].[Employee Type].&[25],
        [Employee].[Employee Type].&[5],[Employee].[Employee Type].&[1],
        [Employee].[Employee Type].&[14],[Employee].[Employee Type].&[30],
        [Employee].[Employee Type].&[10],[Employee].[Employee Type].&[26],
        [Employee].[Employee Type].&[6],[Employee].[Employee Type].&[2]},
        {[Date].[Date Key].&[20160801]:[Date].[Date Key].&[20160803]}
        ) on 0
FROM [OLAP Prep]
)
但是经过长时间的跑步,它给了我这个:

        twoVisitsCount

1   CA  36651
1   CL  36651
1   CO  36651
1   CR  36651
1   DO  36651
1   EC  36651
1   GT  36651
1   HN  36651
1   KY  36651
2   AU  36651
2   BD  36651
2   CN  36651
2   HK  36651
2   ID  36651
2   IN  36651
2   JP  36651
2   KR  36651
3   99  36651
3   AE  36651
3   AL  36651

所有细分计数都相同。

请尝试按以下方式更改此计算

MEMBER [Measures].[twoVisitsCount] AS
SUM(Existing [Employee].[Alt Employee Id].[Alt Employee Id].Members, [Measures].    [twoVisits])
你的计算在所有员工中循环。添加关键字
Existing
只会在该业务区域和国家/地区的员工之间循环