在指标监控的第一部分文章中,我们已经讲了,如何用DAX去查询一段周期内连续下降或者上升指标。

需要复习的同学可以点击下方链接:

https://www.cnblogs.com/simone331/p/17730677.html

根据学友上篇文章的反馈,今天,我们来拓展学 习一下,如何计算一个周期内(非连续),下降或上升天数统计,以及展示他们的明细日期。

学会第二部分内容,我们又可以进一步丰富我们的指标监控看板了。

我们先来看一下成品的效果。

一:数据源准备及建立基础度量值

还是用我们,第一部分案例用的数据源。

建立基础度量值,产品销量和产品销量日环比度量值,具体代码如下

产品销量 = CALCULATE(SUM('数据源'[销量]))
产品销量日环比 =
VAR T1 = CALCULATE([产品销量],DATEADD('日期表'[Date],-1,DAY))
RETURN DIVIDE([产品销量]-T1,T1)

二:建立指标度量值

2.1周期N天_下降天数的度量值

产品销量_周期N天_下降天数 =
VAR N='参数'[参数_值] ///控制天数,可以是一个固定的值,也可以是一个字段参数,动态的值
VAR date_table =
SUMMARIZE
(FILTER('日期表','日期表'[Date]>=MAX('数据源'[日期])-N+1
&&'日期表'[Date]<=MAX('数据源'[日期])),
'日期表'[Date])
VAR sales_table =
ADDCOLUMNS(date_table,"产品日环比",[产品销量日环比])
RETURN COUNTROWS(FILTER(sales_table,[产品销量日环比]<0))

代码解释:代码的前半段,与我们第一部分案例代码一致,就不重复讲解了,有需要的朋友,可以去第一篇案例查看对应代码解释,不同的点在于,我们这段代码返回的值是

RETURN  COUNTROWS(FILTER(sales_table,[产品销量日环比]<0))

这里怎么去理解呢?

我们的sales_table 是由N天日期与销量日环比组成的虚拟表,这里存储了我们所有下降日期及日环比指标,我们通过FILTER(sales_table,[产品销量日环比]<0),把指标下降的日期的行筛选了出来。

然后通过COUNTROWS去对行进行计数,那么将返回一个值,这个值就是销量日环比小于0的天数,即下降的天数。

这里的N是一个变量。如果我们的参数设置为30天,那么就会返回我们30天内所有的下降天数。

2.2 周期N天_下降日期明细

产品销量_周期N天_下降日期明细 =
VAR N='参数'[参数_值] ///控制天数,可以是一个固定的值,也可以是一个字段参数,动态的值
VAR date_table =
SUMMARIZE
(FILTER('日期表','日期表'[Date]>=MAX('数据源'[日期])-N+1
&&'日期表'[Date]<=MAX('数据源'[日期])),
'日期表'[Date])
VAR sales_table =
ADDCOLUMNS(date_table,"产品日环比",[产品销量日环比])
VAR sales_table_below = FILTER(sales_table,[产品销量日环比]<0)
RETURN
CONCATENATEX(sales_table_below,'日期表'[Date]," , ")

代码解释:

因为我们需要下降日期的明细,所以2.1中的代码就不适用了,因为countrows返回的是一个值,并不是文本,这里就到了CONCATENATEX函数发挥作用了,sales_table_below 变量 是所有下降日期的表,我们通过CONCATENATEX将这个表中的日期进行拼接,以逗号为分割便得到了最后我们需要的效果。

三:总结

一句话总结这个案例,就是通过构建虚拟日期表,在虚拟日期表的基础上构建虚拟的日期指标表,最后根据需要,去对这个虚拟的日期指标表,进行计数、拼接等等操作,来实现我们的业务模块功能。

如果你感兴趣,并且对文章内容有疑问,欢迎私聊沟通交流。

#POWERBI_指标监控(第二部分,周期内下降天数及日期明细)的更多相关文章

  1. 图解JanusGraph系列 - JanusGraph指标监控报警(Monitoring JanusGraph)

    大家好,我是洋仔,JanusGraph图解系列文章,实时更新~ 图数据库文章总目录: 整理所有图相关文章,请移步(超链):图数据库系列-文章总目录 源码分析相关可查看github(码文不易,求个sta ...

  2. flock防止crontab脚本周期内未执行完重复执行(转)

    如果某脚本要运行30分钟,可以在Crontab里把脚本间隔设为至少一小时来避免冲突.而比较糟的情况是可能该脚本在执行周期内没有完成,接着第二个脚本又开始运行了.如何确保只有一个脚本实例运行呢?一个好用 ...

  3. SpringBoot第十二集:度量指标监控与异步调用(2020最新最易懂)

    SpringBoot第十二集:度量指标监控与异步调用(2020最新最易懂) Spring Boot Actuator是spring boot项目一个监控模块,提供了很多原生的端点,包含了对应用系统的自 ...

  4. 【03】SpringBoot2核心技术-核心功能—数据访问_单元测试_指标监控

    3.数据访问(SQL) 3.1 数据库连接池的自动配置-HikariDataSource 1.导入JDBC场景 <dependency> <groupId>org.spring ...

  5. 业务监控-指标监控(v1)

    最近做了指标监控系统的后台,包括需求调研.代码coding.调试调优测试等,穿插其他杂事等前后花了一个月左右. 指标监控指的是用户通过接口上传某些指标信息,并且通过配置阈值公式和告警规则等信息监测自己 ...

  6. 基于 prometheus 的微服务指标监控

    基于prometheus的微服务指标监控 服务上线后我们往往需要对服务进行监控,以便能及早发现问题并做针对性的优化,监控又可分为多种形式,比如日志监控,调用链监控,指标监控等等.而通过指标监控能清晰的 ...

  7. oracle 根据一个时间段获取这个时间段内所有月份、天数、日期

    注:本文来源于< oracle 根据一个时间段获取这个时间段内所有月份.天数.日期 > 获取月份列表: SELECT TO_CHAR(ADD_MONTHS(TO_DATE('2014-10 ...

  8. 关于hadoop的运行的一些指标监控(非cdh平台的)

    在hadoop-env.sh中添加: # 在配置namenode和datanode时都会有用到JMX_OPTS的代码,是为了减少重复提取出的公共代码 export JMX_OPTS="-Dc ...

  9. K8S Canal基于Prometheus进行实时指标监控

    文章来源于本人的印象笔记,如出现格式问题可访问该链接查看原文 部署canal的prometheus监控到k8s中 1.grafana的docker部署方式:https://grafana.com/gr ...

  10. 简单4步,利用Prometheus Operator实现自定义指标监控

    本文来自Rancher Labs 在过去的文章中,我们花了相当大的篇幅来聊关于监控的话题.这是因为当你正在管理Kubernetes集群时,一切都会以极快的速度发生变化.因此有一个工具来监控集群的健康状 ...

随机推荐

  1. 【LeetCode专题#基本计算器】基本计算器I,图解中序表达式转逆波兰表达式,太难了

    基本计算器 https://leetcode.cn/problems/basic-calculator/?envType=list&envId=cKNEfNsF 给你一个字符串表达式 s ,请 ...

  2. 第一章 Rust基本知识 -- tour of rust

    第一章 基础知识 将探讨函数.变量和最基本的类型等基本知识. 变量 变量使用let关键字来声明. 在赋值时,Rust能够在99%的情况下推断变量类型.如果不能,也可以将类型添加到变量声明中. 注意 如 ...

  3. 【园子资深博主直播】 冰蓝老师《ChatGPT 初探》

    AI对经济增长.经济周期.经济形态.社会就业都有着非常巨大的影响,ChatGPT4.0发布后,燃起了我们每一个开发人的激情和恐惧,但各路自媒体信息杂乱无序,缺少非常系统性的ChatGPT原理解读. 此 ...

  4. 「Python实用秘技14」快速优化Python导包顺序

    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第14 ...

  5. React学习时,自己拟定的一则小案例(table表格组件,含编辑)

    某次在Uniapp群看到有人问uniapp如何操作dom元素. 他想对这张表标红的区域,做dom元素获取,因为产品想让红色色块点击时,成为可编辑,渲染1~4月份之间的行程安排. 于是,有小伙伴说让他用 ...

  6. selenium元素定位防踩坑---StaleElementReferenceException解决方法

    1.异常原因 执行调试报错:selenium.common.exceptions.StaleElementReferenceException: Message: stale element refe ...

  7. Java批量操作Excel文件实践

    摘要:本文由葡萄城技术团队于博客园原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 | 问题背景 在操作Excel的场景中,通常会有一些针对 ...

  8. 聊一聊Java中的Steam流

    1 引言 在我们的日常编程任务中,对于集合的制造和处理是必不可少的.当我们需要对于集合进行分组或查找的操作时,需要用迭代器对于集合进行操作,而当我们需要处理的数据量很大的时候,为了提高性能,就需要使用 ...

  9. MyBatis实现动态SQL更新

    博主记得在一个周五快下班的下午,产品找到我(为什么总感觉周五快下班就来活 ),跟我说有几个业务列表查询需要加上时间条件过滤数据,这个条件可能会变,不保证以后不修改,这个改动涉及到多个列表查询,于是博主 ...

  10. 深度学习(五)——DatadLoader的使用

    一.DataLoader简介 官网地址: torch.utils.data - PyTorch 2.0 documentation 1. DataLoder类 class torch.utils.da ...