所以这是SQL查询:
select date(actor_creation_date),count(*) from fse_master group by (actor_creation_date) limit 3;
到目前为止,我已经能够想出这个:
with MEMBER [measures].[actor creation date] AS COUNT(([Measures].[actor creation date]))
select [Measures].[actor creation date] on columns,
order([fse_master].members ,[Measures].[actor creation date],desc)
on rows
from [fse_masters]
答案 0 :(得分:2)
你不应该在" set"之间感到困惑。和一个"衡量"。 Measure只是一个数字/字符串实体,本质上是逻辑。你无法计算出具有逻辑性的东西。它需要在物理上是可数的。在MDX术语中,它需要是一组。一组项目更精确。
select date(actor_creation_date),count(*)
from fse_master
group by (actor_creation_date)
limit 3;
在您的查询中,actor_creation_date
是数据库中存在的实际事物(日期)集。它本质上是物理的。在RDBMS术语中,这是一个列。在MDX术语中,这需要是一个集合。
如果您有日期衡量标准,那么您不能仅仅期望将重点放在其上并期望它能够正常工作。
COUNT([measures].[actor creation date])
转换为类似的内容
COUNT({12345})
这是一个集合的计数,它只包含一个值的成员。它的输出总是一个。
您需要的是在设置日期上运行COUNT
功能。
您必须拥有一个日期维度,该维度将actor creation date
作为其中一个属性。
让我们说它看起来如下:
[Date].[actor creation date].[actor creation date]
现在,您尝试使用一个计算成员来保存每个日期的计数。
WITH MEMBER Measures.CountOfDate
AS
COUNT([Date].[actor creation date].[actor creation date].CURRENTMEMBER)
limit 3
表示您想要前3个日期。 MDX中的HEAD
函数可以解决这个问题。
最终查询将是:
SELECT HEAD([Date].[actor creation date].[actor creation date].MEMBERS, 3) ON 1,
Measures.CountOfDate ON 0
FROM [fse_masters]
编辑 - 正如@whytheq所说,我的初步尝试不正确。
您可以尝试以下方面的内容:
WITH SET ActorCreationDates AS
[Date].[actor creation date].[actor creation date].MEMBERS
MEMBER Measures.CountOfDate
AS
COUNT(EXISTING ActorCreationDates)
SELECT HEAD(ActorCreationDates, 3) ON 1,
Measures.CountOfDate ON 0
FROM [fse_masters]
或者,如果您需要所有记录,而不仅仅是前三名,那么:
SELECT DISTINCT(ActorCreationDates) ON 1,
Measures.CountOfDate ON 0
FROM [fse_masters]
EXISTING
子句计算' CountOfDate'在当前上下文中,即Axis 1上的特定成员。
答案 1 :(得分:0)
您正在定义一个名称与现有度量相同的度量 - 这是否会导致异常?
使用MEMBER [measure]。 [演员创建日期] AS COUNT(([测量]。 [演员创建日期] ))
我认为对于任何层次结构的任何成员,该成员的每个度量都有1个,所以你的脚本每个计数只会生成1个?
在AdvWrks中我做到了:
WITH
MEMBER [Measures].[x] AS
Count([Measures].[Internet Sales Amount])
SELECT
{
[Measures].[Internet Sales Amount]
,[Measures].[x]
} ON 0
,[Product].[Product Categories].[Subcategory] ON 1
FROM [Adventure Works];
它返回:
是否可以根据需要将度量添加到多维数据集中?它需要包含相关的关系和度量类型,即计数。