zoukankan      html  css  js  c++  java
  • MDX中容易搞混的几个概念

    元组:

    可以直接理解为元素,或者可以理解为EXCEL中的单元格,而这个单元格一般来讲是两个或者两个以上的维度crosstab出来的。
    例如

    select [Measures].[Dollar Sales] on 0
    from sales
    where ([Time].[2004],[Product].[Tools])

    就是统计2004年Tools产品类的数据。
    个人理解的流程是,先把2004年Tools产品类的数据拿出来,配上各种维度(但是不含Time和Product维度了)。
    相当于是提取了整个多维数据的一个子集出来进行统计,而这个子集也是一个多维数据。个人理解这个就是切片的概念。

    Filter()

    select filter(
        [Time].[Year].members, 
        ([Time].[2004], [Measures].[Sales Count])>=10000
    ) on 0,
        [Product].[Category].children on 1
    from sales
    where [Measures].[Sales Count]

    filter第二个参数是个布尔表达式,是(元组)>=value的形式,所以可以是由多个维度组合的元组。
    从([Time].[2004], [Measures].[Sales Count])>=10000也可以更进一步加深理解元组的概念:元组实际上是有多个条件crosstab出来的一个单元格数值。
    ([Time].[2004], [Measures].[Sales Count])是04年全年的sales count
    ([Time].[Q1, 2004], [Measures].[Sales Count])是04年Q1的sales count

    Order()

    select [Time].[Year].members on 0,
        order(
            {[Product].[Category].Members},
            ([Time].[2004], [Measures].[Sales Count]),
            DESC
        ) on 1
    from sales
    where [Measures].[Sales Count]

    Order()第二个参数实际上是一个元组,相当于给第一个参数所指定的集合中增加了一列用于排序的字段,而这个排序字段是用第二个参数指定的元组的公式计算出来的。

  • 相关阅读:
    Analysis Services features supported by SQL Server editions
    Azure DevOps to Azure AppServices
    Power BI For Competition
    Win10开机“提示语音”以及”随机播放音乐”
    Azure DevOps
    Allow Only Ajax Requests For An Action In ASP.NET Core
    Mobile CI/CD 101
    Configure SSL for SharePoint 2013
    AWS Step Function Serverless Applications
    Cordova Upload Images using File Transfer Plugin and .Net core WebAPI
  • 原文地址:https://www.cnblogs.com/ifan/p/2839235.html
Copyright © 2011-2022 走看看