我的立方体中有
MIN
聚合衡量收入我的查询是:
What are the minimum earnings of the person who decides to buy
apartments in the city center, excluding 5% of the lowest, within
last 2 years?
现在我的mdx查询如下:
SELECT
[Measures].[MinEarnings] ON COLUMNS
FROM [cube]
WHERE
(
BottomCount ([Localization].[Type].&[center], 95, [Measures].[MinEarnings]),
{[Date].[Year].&[2017], [Date].[Year].&[2018]}
)
我有两个问题:
答案 0 :(得分:1)
首先,您应该使用toppercent而不是bottomcount。您想要一个不在最后5%的人的最低薪水而不是最近5个的薪水。Toppercent将为您提供最高的95%。
第二个可以过滤0的语法
toppercent (
filter([Localization].[Type].&[center], [Measures].[MinEarnings]>0)
, 95, [Measures].[MinEarnings])
即使现在将代码放在where子句中也可能不起作用,但是请尝试一下。我建议您将toppercent移至rows,然后对其进行排序,然后选择top1
topcount(
order(
toppercent (
filter([Localization].[Type].&[center], [Measures].[MinEarnings]>0)
,95, [Measures].[MinEarnings])
,[Measures].[MinEarnings],asc)
,1)
我有一个给出城市最小销售量的示例,请注意,我已将null替换为0,以使其尽可能接近您的情况
具有成员[Measures]。[Internet Sales Amount2] 如 当[[Measures]。[Internet Sales Amount]] = null时,则为0,否则[Measures]。[Internet Sales Amount]结束
select [Measures].[Internet Sales Amount2]
on columns ,
topcount(order(toppercent(filter([Customer].[City].[City],[Measures].[Internet Sales Amount2]>0),95,[Measures].[Internet Sales Amount2]),[Measures].[Internet Sales Amount2],asc),1)
on rows
from [Adventure Works]
where [Customer].[Country].&[Canada]
下图中的