#POWERBI_指标监控(第二部分,周期内下降天数及日期明细)
在指标监控的第一部分文章中,我们已经讲了,如何用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_指标监控(第二部分,周期内下降天数及日期明细)的更多相关文章
- 图解JanusGraph系列 - JanusGraph指标监控报警(Monitoring JanusGraph)
大家好,我是洋仔,JanusGraph图解系列文章,实时更新~ 图数据库文章总目录: 整理所有图相关文章,请移步(超链):图数据库系列-文章总目录 源码分析相关可查看github(码文不易,求个sta ...
- flock防止crontab脚本周期内未执行完重复执行(转)
如果某脚本要运行30分钟,可以在Crontab里把脚本间隔设为至少一小时来避免冲突.而比较糟的情况是可能该脚本在执行周期内没有完成,接着第二个脚本又开始运行了.如何确保只有一个脚本实例运行呢?一个好用 ...
- SpringBoot第十二集:度量指标监控与异步调用(2020最新最易懂)
SpringBoot第十二集:度量指标监控与异步调用(2020最新最易懂) Spring Boot Actuator是spring boot项目一个监控模块,提供了很多原生的端点,包含了对应用系统的自 ...
- 【03】SpringBoot2核心技术-核心功能—数据访问_单元测试_指标监控
3.数据访问(SQL) 3.1 数据库连接池的自动配置-HikariDataSource 1.导入JDBC场景 <dependency> <groupId>org.spring ...
- 业务监控-指标监控(v1)
最近做了指标监控系统的后台,包括需求调研.代码coding.调试调优测试等,穿插其他杂事等前后花了一个月左右. 指标监控指的是用户通过接口上传某些指标信息,并且通过配置阈值公式和告警规则等信息监测自己 ...
- 基于 prometheus 的微服务指标监控
基于prometheus的微服务指标监控 服务上线后我们往往需要对服务进行监控,以便能及早发现问题并做针对性的优化,监控又可分为多种形式,比如日志监控,调用链监控,指标监控等等.而通过指标监控能清晰的 ...
- oracle 根据一个时间段获取这个时间段内所有月份、天数、日期
注:本文来源于< oracle 根据一个时间段获取这个时间段内所有月份.天数.日期 > 获取月份列表: SELECT TO_CHAR(ADD_MONTHS(TO_DATE('2014-10 ...
- 关于hadoop的运行的一些指标监控(非cdh平台的)
在hadoop-env.sh中添加: # 在配置namenode和datanode时都会有用到JMX_OPTS的代码,是为了减少重复提取出的公共代码 export JMX_OPTS="-Dc ...
- K8S Canal基于Prometheus进行实时指标监控
文章来源于本人的印象笔记,如出现格式问题可访问该链接查看原文 部署canal的prometheus监控到k8s中 1.grafana的docker部署方式:https://grafana.com/gr ...
- 简单4步,利用Prometheus Operator实现自定义指标监控
本文来自Rancher Labs 在过去的文章中,我们花了相当大的篇幅来聊关于监控的话题.这是因为当你正在管理Kubernetes集群时,一切都会以极快的速度发生变化.因此有一个工具来监控集群的健康状 ...
随机推荐
- 【网络知识】FTP主被动模式介绍及抓包分析
一.FTP是什么 FTP,即文件传输协议(File Transfer Protocol,FTP),基于该协议客户端与服务端可以实现共享文件.上传文件.下载文件. FTP 基于TCP协议生成两个连接,一 ...
- 创建springboot工程失败解决 spring initializr Error:cannot download
创建springboot工程失败解决 问题描述 原因分析: 网络不好,因为springBooT项目的创建时必须联网的 解决方案: 方案一: 将创建 springBoot 工程的地址更换为如下的地址 阿 ...
- sensor binning信号及信噪比
Signal是简单的增加,Noise是以均方根形式增加 例如: 2*2的binning模式中,signal增加4倍,noise增加 4 \sqrt4 4 倍,so SNR增加2倍. sony sen ...
- 解决连接MySQL,报错10061,系统错误5
mysql登录不上去,报错10061,百度后得,mysql服务未启动.. 方法一.选择dos窗口命令行打开mysql 输入代码 net start mysql 报错,如图所示.系统错误 5 解决办法: ...
- 抽象语法树AST必知必会
1 介绍 AST 打开前端项目中的 package.json,会发现众多工具已经占据了我们开发日常的各个角落,例如 JavaScript 转译.CSS 预处理.代码压缩.ESLint.Prettier ...
- 使用Locust进行分布式性能测试
Locust是一个强大的性能测试工具,用于评估系统的性能和可扩展性.本文将简洁地介绍使用Locust进行分布式性能测试的步骤和优势. 步骤: 1. 配置测试环境:在主节点和多个从节点上安装相同版本的L ...
- KVM 动态调整 qcow2 硬盘
动态扩容 参考:https://cloud-atlas.readthedocs.io/zh_CN/latest/kvm/kvm_vdisk_live.html 未关闭虚拟机,直接在宿主机器上qemu- ...
- Linux 修改文本dos/unix 格式
使用 vi 命令打开文件,使用 :set ff 查看格式 如果显示dos,可使用 :set ff=unix 修改 pem 证书,使用 cat xx.key xx.crt DigiCertCA.crt ...
- enumerate()使用方法
enumerate()(单词意思是枚举的意思)是python中的内置函数, enumerate(X,[start=0]) 函数中的参数X可以是一个迭代器(iterator)或者是一个序列, start ...
- linux下创建虚拟环境
安装虚拟环境: 1 sudo apt-get install virtualenvwrapper 配置环境变量: 1.创建目录用于存放虚拟环境. 1 mkdir $HOME/.virtualenvs ...