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

  • 相关阅读:
    质数检测器
    《视觉SLAM十四讲》学习日志(一)——预备知识
    C++类的介绍
    Python数据类型解析(基础篇)
    括号匹配详解
    哈夫曼树编码
    分治之归并,快速排序
    洛谷p2216 多次单调队列,扫描矩阵中的最大值减去最小值最的固定大小子矩阵
    洛谷p1886滑动窗口最大最小值 双单调队列
    洛谷p1725 露琪诺 单调队列优化的DP
  • 原文地址:https://www.cnblogs.com/ifan/p/2839235.html
Copyright © 2011-2022 走看看