zoukankan      html  css  js  c++  java
  • 有关比较分析的MDX

    所有的例子中:month参数指向月粒度、year参数指向年粒度。日期层次结构为:年、季度、月、日

    1. 去年同期:即查询月为200905的话,该指标为200805该指标
    total([金额] within set parallelPeriod([日期].[日期层次结构].[年],1,[日期].[日期层次结构].[月]->?mon?))
    2. 本年累计:即查询月为200905的话,该指标为200901-200905期间发生
    total([金额] within set periodsToDate([日期].[日期层次结构].[年],[日期].[日期层次结构].[月]->?mon?))

    3.  去年同期止累计:即查询月为200905的话,该指标为200801-200805期间发生
    total([金额] within set periodsToDate([日期].[日期层次结构].[年],parallelPeriod([日期].[日期层次结构].[年],1,[日期].[日期层次结构].[月]->?mon?)))
    同比增长  (以日期为行维)
    ([销售金额]- value(tuple(parallelPeriod([ARPD-Sale].[日期].[日期].[年]),[销售金额])))/ value(tuple(parallelPeriod([ARPD-Sale].[日期].[日期].[年]),[销售金额]))
    环比增长   (以日期为行维)
    ([销售金额]-value(tuple(prevMember(currentMember([ARPD-Sale].[日期].[日期])),[销售金额])))/value(tuple(prevMember(currentMember([ARPD-Sale].[日期].[日期])),[销售金额]))
    4. 有史以来累计发生:查询月为200805,则为从时间第一个节点截止200805期间发生

    1)如果提示使用的是[日期].[日期层次结构].[月].[月 - Key]
       total([金额] within set
            filter(
                 members([日期].[日期层次结构].[月]),
                 [日期].[日期层次结构].[月].[月 - Key]<=?month?
                  ))

    2)如果提示使用的是[日期].[日期层次结构].[月]
        total([金额] within set
            lastperiods(1000,[日期].[日期层次结构].[月]->?month?))
    5. 查询粒度为年,统计上半年、下半年
    上半年余额(即时点类指标):
    total([余额] within set subset(descendants([日期].[日期层次结构].[年]->?year?,[日期].[日期层次结构].[月]),5,1))
    上半年发生额(即时段类指标):
    total([金额] within set subset(descendants([日期].[日期层次结构].[年]->?year?,[日期].[日期层次结构].[月]),0,6))

    这里subset()这个函数和substring()类似,只不过subset截取的是一个set(集合)中的某些成员而已,并且注意subset()第一个是0而不是1,这个和数组是类似的.
  • 相关阅读:
    使用SolrJ生成索引
    olr 性能调优 NO_NORMS
    关于 solr solrconfig.xml 的配置说明
    动态生成二维码并利用canvas合成出一张图片(类似海报、分享页)
    如何将打包好的文件做成一个APP
    vue路由对不同界面进行传参及跳转的总结
    移动端自适应布局的适配
    08年12月到1月15的工作
    继续被reject!
    虽然预料到结果,但还是感觉不爽!
  • 原文地址:https://www.cnblogs.com/HondaHsu/p/2092044.html
Copyright © 2011-2022 走看看