带冰块的 MDX 中的直方图
Histrogram in MDX with icCube
如何使用 MDX 制作动态直方图?
例如,我们的架构基于网络访问,我们有会话数和点击数。考虑到这可能取决于其他维度(国家/地区、小时、入口页面...),我们希望获得一次点击的会话数。
为了解决这个问题,我们将使用两个不同的概念。首先创建一个新的层次结构,然后使用 MDX+。
首先我们要创建一个新维度,[直方图]。这个新维度将包含具有两个成员属性的桶的定义:开始桶和结束桶。一个看起来像
的伪table
Name start-bucket end-bucket
0-1 0 1
1-2 1 2
2-3 2 3
...
10++ 10 2147483647
此层次结构未链接到事实,并为每个成员定义了两个定义存储桶的属性。
让我们在 MDX 中使用它。
假设我们有一个维度[会话]和一个度量[点击次数]。首先,我们将使用 icCube 的 OO 功能并创建一个向量,为每个会话计算 [click-outs]
的数量
-> Vector( [会话], [点击次数], 排除)
Vector 有一个函数 hist(start,end),它完全满足我们的需要,计算开始和结束之间的所有出现次数(已排除)。
Vector( [Sessions], [click-outs], EXCLUDEEMPTY )->hist(0,1)
将其与我们新创建的层次结构放在一起可以自动计算所有存储桶。 const 函数确保向量只计算一次,因为它可能很耗时。
最终的 MDX 看起来像(请注意,函数和计算成员都可以在模式脚本中创建,每个模式一次):
WITH
CONST FUNCTION ClicksBySession() AS Vector( [Sessions], [Measures].[click-outs], EXCLUDEEMPTY )
MEMBER [Session/Clickout] AS ClicksBySession()->hist( [Histogram].currentMember.properties("start-bucket", TYPED) , [Histogram].currentMember.properties("end-bucket", TYPED)
SELECT
{[Session/Clickout] } on 0,
[Histogram].on 1
FROM [clickout]
--where [Geography].[Europe]
您有一个动态计算的直方图,可以轻松插入仪表板并重复使用。
如何使用 MDX 制作动态直方图?
例如,我们的架构基于网络访问,我们有会话数和点击数。考虑到这可能取决于其他维度(国家/地区、小时、入口页面...),我们希望获得一次点击的会话数。
为了解决这个问题,我们将使用两个不同的概念。首先创建一个新的层次结构,然后使用 MDX+。
首先我们要创建一个新维度,[直方图]。这个新维度将包含具有两个成员属性的桶的定义:开始桶和结束桶。一个看起来像
的伪tableName start-bucket end-bucket
0-1 0 1
1-2 1 2
2-3 2 3
...
10++ 10 2147483647
此层次结构未链接到事实,并为每个成员定义了两个定义存储桶的属性。
让我们在 MDX 中使用它。
假设我们有一个维度[会话]和一个度量[点击次数]。首先,我们将使用 icCube 的 OO 功能并创建一个向量,为每个会话计算 [click-outs]
的数量-> Vector( [会话], [点击次数], 排除)
Vector 有一个函数 hist(start,end),它完全满足我们的需要,计算开始和结束之间的所有出现次数(已排除)。
Vector( [Sessions], [click-outs], EXCLUDEEMPTY )->hist(0,1)
将其与我们新创建的层次结构放在一起可以自动计算所有存储桶。 const 函数确保向量只计算一次,因为它可能很耗时。
最终的 MDX 看起来像(请注意,函数和计算成员都可以在模式脚本中创建,每个模式一次):
WITH
CONST FUNCTION ClicksBySession() AS Vector( [Sessions], [Measures].[click-outs], EXCLUDEEMPTY )
MEMBER [Session/Clickout] AS ClicksBySession()->hist( [Histogram].currentMember.properties("start-bucket", TYPED) , [Histogram].currentMember.properties("end-bucket", TYPED)
SELECT
{[Session/Clickout] } on 0,
[Histogram].on 1
FROM [clickout]
--where [Geography].[Europe]
您有一个动态计算的直方图,可以轻松插入仪表板并重复使用。