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