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

  • 相关阅读:
    MySQL密码复杂度与密码过期策略介绍
    mysql 5.7安装密码校验插件validate_password
    MySQL安装控制插件(Connection-Control)--可有效的防止客户端暴力登录的风险(攻击)
    Liunx 无法杀掉reids进程解决方法
    Linux安装Kafka
    ZooKeeper安装及简单操作
    关于数组的算法题(一)
    集合框架方法(用于算法)
    Spring简答题(一)
    java选择题(三)
  • 原文地址:https://www.cnblogs.com/ifan/p/2839235.html
Copyright © 2011-2022 走看看