自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Fabric丨白茶

数据分析进阶之路,带你深入了解可视化技巧。

  • 博客(228)
  • 收藏
  • 关注

原创 精品丨PowerBI负载测试和容量规划

Power BI如何进行负载测试和容量规划。

2024-03-30 15:48:23 861

原创 BI技巧丨个性化视觉对象

BOSS:那个,那个谁,最近用户反映了,说是你们做的报表不太行啊?!白茶:(???)老板,怎么说?BOSS:就是能不能让**用户在报表上自己调整某个可视化?**比如柱形图调整为环形图或者明细表啥的?(苍蝇搓手!白茶:(假装沉思…)老板,这个有点难啊…BOSS:放心,规矩我懂!(胸脯拍得啪啪作响)白茶:稍等,我研究研究。在报表使用过程中,用户经常会想着能不能自己动手,在当前报表的基础上,自己有一些个性化的DIY操作,来满足自助化分析的需求,毕竟报表开发者,有时候并不能百分百的Get到业务的痛点。

2024-03-23 12:19:06 439

原创 BI技巧丨钻取动态度量值

PowerBI自带的数据钻取功能,在实际应用中是用户使用度较高的功能之一,特别是需要实际操作的业务用户,往往需要根据汇总的结果定位到相关的明细数据,以便进行下一步的流程操作,这种场景下钻取功能显得尤为便利。两个度量值都可以满足钻取的需求,但是有一个严重的漏洞,实际上我们在设计报表时,明细表默认是不会选择隐藏的,是需要开放给用户进行明细数据导出的,而两个明细表默认进来的情况,都不太理想,需要我们处理一下。根据上面的业务形态,不难发现,其实用户想要的,就是动态度量值的切换,我们实现的办法有两种。

2023-12-16 15:03:27 489

原创 BI技巧丨RowNumber应用介绍

1.从结果上看,当OrderBy参数只有一个时,Rank会出现并列排名,而RowNumber则不会,会按照顺序依次打标签序号,这点其实和SQL中二者的区别是一致的;白茶在之前的文章中,给大家介绍过Rank函数的应用场景,其实与Rank函数同时推出的还有RowNumber函数,二者之间有一些差异,但是总体应用的场景基本类似。3.这里补充一下,Rank函数的第一参数ties如果省略,则默认为SKIP,排序结果为:1、2、2、4,如果设置为DENSE,则排序结果为:1、2、2、3;

2023-12-09 14:15:20 490

原创 BI技巧丨利用Rank函数排名

除了上述的3个问题之外,还有相关的绝对排名、相对排名以及组内排名等,白茶这里就不赘述了,感兴趣的小伙伴可以自己动手测试。擅长SQL的小伙伴不难发现,微软就是将SQL中的Rank函数移植到了DAX中,写法上有差异,其内核基本相同。微软新推出的开窗函数Rank,可以说是对排名问题的一次优化,也解决了一些之前Rankx函数的坑点。实际场景中,经常会出现并列排名的情况,一般情况的处理办法是发现并列排名,则进行加权处理。到这里,我们的准备工作完成,接下来我们来看看在不同的场景中,Rank函数的表现。

2023-10-28 07:37:41 388

原创 BI技巧丨Window应用之累计求和

除了上述累计求和场景应用之外,Window函数在处理同值累计和上期累计的获取上,都要比之前的方式更加灵活,感兴趣的小伙伴可以自行动手测试,白茶这里就不赘述了。③WINDOW的from参数,设定从第一个位置开始,绝对位置,to设定到当前位置,相对位置,即从最初的第一行累计到当前的每一行;核心在于Window的from和to参数的设定,可以将其设置为绝对位置和相对位置。①WINDOW的写法对比之前的写法简洁了很多,省略了获取行日期的操作;从性能分析器的结果来看,Window的写法对比变量的写法要优化很多。

2023-09-24 14:03:17 240

原创 BI技巧丨Window应用之移动平均

Values的写法本质上和Topn的写法是没差异的,区别就是上下文不同,而案例数据量级非常的小,所以Values的查询时间不具备参考价值。2.为了展示不同的上下文,Topn是借助日期表构建的逻辑,Values利用的是Fact表中的日期列;③.Allselected的用途是为了保证一些其他筛选的效果,在当前案例中使用All的效果是一样的;②.Window里面的REL代表的是相对的意思,即每行从向前平移2行的位置开始,截至到本行为止;④.Filter的用途,是为了过滤掉没有销售事实的日期,避免影响计算结果。

2023-09-10 10:39:32 137

原创 BI技巧丨Window应用之同环比

无论是对比之前的时间智能函数的写法,还是对比日期表加列的写法,包括本期对比WINDOW函数的写法,OFFSET在同环比计算上的速度都是最优的。relation:表表达式,后续参数orderby,partitionby,matchby的内部参数,都需要来自它或相关表。而WINDOW函数,因为有from和to两个定位值,因此性能上面对比OFFSET是有损耗的。from:表示窗口开始的位置,正负数均可,可以是固定值,也可以是DAX表达式。to:表示窗口结束的位置,正负数均可,可以是固定值,也可以是DAX表达式。

2023-08-26 12:39:36 160

原创 BI技巧丨利用Index计算半累计

在实际的业务场景中,特别是财务模块和库存管理模块,经常需要我们针对每个月的期初期末进行相关指标计算,这也是我们之前曾经提到的Calculate基础应用——半累计计算。relation:表表达式,后续参数orderby,partitionby,matchby的内部参数,都需要来自它或相关表。这是我们之前的处理方式,利用Lastdate函数或Filter+All+Max的组合,完成半累计计算,求出相关指标。没错,是这样的,除了函数功能有所区分以外,剩下的参数用途基本一致。orderby:可选项,排序依据。

2023-08-11 20:29:49 199

原创 BI技巧丨利用OFFSET计算同环比

partitionby的用途是为了进行分区,基本定义与SQL中是一致的,我们添加了年份字段进行分区,因为分区隔离的原因,向前偏移无法取到值,因此201801返回结果为空。从结果上我们不难看出,orderby更改了我们之前偏移的依据,原本我们是依据年月向前偏移的,orderby将其更改为参照销售数量。微软最近更新了很多开窗函数,其内部参数对比以往的DAX函数来说,多了很多,这就导致学习的时间成本直线上升。从结果上看,二者是一致的,都没有太大的问题,但是从写法上看,开窗函数的写法无疑是简洁了很多。

2023-08-05 15:02:19 220 1

原创 BI-SQL丨两表差异比较

EXCEPT是用来比较两个表之间的数据差,返回的结果集为在第一个表中存在且在第二个表中不存在的数据;INTERSECT是用来获取两个表之间的数据交集,返回的结果集为两个表中相同的部分。BOSS:哦,对了,差点忘记告诉你了,新系统没有进行过数据校验,所以切换之前,需要你处理一下,这个能整不?BOSS:哎,白茶,我们最近新上了一个系统,后续有一些数据要进行源切换,这个能整么?要知道,对于数仓来说,数据的准确性是非常重要的,也是衡量数仓是否可用的标准之一。3.被比较的两个表中不能存在不可被比较的数据类型。

2023-07-29 17:55:51 410

原创 BI-SQL丨XML PATH

通过WHERE关键字,我们可以将XML PATH的结果与表中原有UserName列进行自关联展示,但是会有很多的重复项,因此,我们需要通过GROUP BY来进行分组去重。通过上面的结果,我们不难理解,其实它就是将查询结果集以XML形式呈现,将多行的查询结果,合并在同一行展示。在上面的截图中,我们不难发现,每个结果前面都多了一个分隔符,很明显,从应用层来说,第一个分隔符是不需要的。而STUFF函数,可以在源字符中,删除给定长度的字符序列,并且从指定的起始位置,插入给定的字符序列。

2023-07-22 12:41:28 441

原创 BI-SQL丨XML

这个就要从SQL Server的应用开始说起了,众所周知,SQL作为计算机的通用语言之一,在各个领域都存在广泛的应用,也有着各式各样的开发规范要求,但是并不是所有的场景下,开发者都会遵循相关的规范。这种情况下,小A和小B之间接口的对接,就会出现很大的差异性。为了解决这一现状,SQL Server引入了XML类型的字段,这样不需要针对表结构进行更改,可以将差异化类型的数据,存储在XML类型的字段中。可以看到,实际上在结果的第一行,是存在多行数据的,而nodes的作用通常是将一行中多行的数据,拆分出来。

2023-07-15 11:24:50 1760

原创 BI-SQL丨WITH NOLOCK

数据库为了避免上述的三种情况,有4种特殊的隔离机制,分别是:Read uncommitted(读未提交),Read committed(读已提交),Repeatable read(可重复读),Serizable(序列化)。而同时B管理员也读取了这个数据,这种情况下,B读到的是未更新的数据,也被称为脏数据。**不可重复读:**指的是某个事务中,多次对某张表进行读取操作,在A事务进程还没结束的情况下,B事务对数据进行了修改,这样A事务两次读取到的数据不一致,这种情况就是不可重复读。

2023-07-01 16:27:11 703

原创 BI-SQL丨角色和用户

用来登录数据库的访问账号,例:有些时候,我需要赋予某些用户权限,只可以对某个数据库有操作,不能对服务器有操作,这种情况下就需要使用用户名。在数仓的运维工作中,经常需要为用户开通不同权限的账号,使用户可以正常访问不同的数据,那么这就需要我们了解SQL Server的权限体系。,且白茶可以在多家企业任职,所以在服务器层面,登录名和用户名的关系是一对多,落到具体的数据库层面,登录名和用户名的关系是一对一。除了负责园区以外,白茶也在这片园区里面开办了一家企业,或在里面的某家企业任职,这时候白茶的角色是。

2023-06-24 11:08:01 724

原创 BI-SQL丨行列转换

无论是搭建数仓,还是通过PowerBI进行数据分析,我们总会接触到各式各样的数据源,而在这些数据源中,除了标准的大型数仓外,我们很少能够拿到标准规范的数据表结构。接触最多的,往往是大宽表,这就需要我们将大宽表转换为标准的二维表结构,即实现表结构的降维操作,也就是PowerBI中的透视功能。PIVOT函数,通常用来将表结构从二维表转换为大宽表,而UNPIVOT则恰恰相反,通常是用来将大宽表转换为二维表。同理,除了UNPIVOT函数以外,列转行也是有其他办法的。将二维表,转换为大宽表。将大宽表,转换为二维表。

2023-06-17 20:21:53 234

原创 BI-SQL丨日志清理

毕竟,日志文件中记录着对数据库所执行的操作,有时候我们需要查看日志文件进行操作复盘的。而在我们日常运维过程中,偶尔会遇到数据库执行JOB的时候,报内存不足的错误,导致JOB无法正常运行,为了解决这一问题,就需要我们定期对数据库的日志进行清理。在使用SQL Server的过程中,随着时间的变化,后台日志文件的体量也是在不断增加的。点击OK,保存即可,这样就完成数据库日志的自动清理了,当然,我们也可以选择立即执行,查看一下JOB是否能够正常运行。当然,我们也可以通过执行下面的语句,来查看日志文件的相关信息。

2023-06-10 19:53:36 1079

原创 BI技巧丨度量值的动态格式字符串

2.如果你所在的组织,不仅使用了PowerBI相关的服务,还使用了VS Studio,甚至长远规划囊括了SSAS,那么白茶建议你还是采用之前的方式,使用计算组功能。按照之前的方式,我们会选择添加一张配置表,来进行单位的手动切换,并搭配计算组功能,将文字信息传入到图表中。在PowerBI功能栏中选择文件,找到选项和设置,在选项中找到预览功能,勾选度量值的动态格式字符串功能。当然,除了上面的例子,该功能还有很多其它的用法,白茶这里就不一一举例了,感兴趣的小伙伴可以自行尝试。这里,我们举一个简单的例子,

2023-05-25 22:01:11 386

原创 BI技巧丨计算组柱形图

但是在实际需求中,PowerBI原生的柱形图仅能展示一个数据标签,如果我们想要展示同环比的变化情况,往往需要将同环比的度量值放置到工具提示中。PowerBI中,我们经常使用柱形图来进行趋势对比分析,通过柱形图我们可以直观展示每个月之间的差异。这对用户来说,体验其实是很不友好的,用户期望的往往是一眼可以获取到所有想知道的关键信息。到这里,我们的准备工作完成,其实这也是不通过计算组功能所能实现的效果。3.当然,这个需求也可以深挖一下,进行同环比配色,这里就不进行展示了。这里是白茶,一个PowerBI的初学者。

2023-05-20 20:54:17 815 2

原创 BI技巧丨矩阵甘特图

除了根据日期节点进行判断以外,我们也可以加一些其他元素做判断,例如:项目的状态、当前日期节点等。日常分析时,当我们需要针对某一个连续事件进行进度更新的时候,往往会采用甘特图来进行展示,这样肉眼看起来直观,方便一眼定位到目前的项目节点。除了使用应用市场的应用以外,还可以通过内置的矩阵,来实现甘特图的制作。白茶模拟的数据比较简单,但实际应用中,会存在项目中断重启的情况,因此为了能够在完整的维度下展示,我们需要构建一张日期表。BOSS:对了,不要那种点进来会有点卡,等半天的那种,要保持速度!

2023-05-14 20:36:40 767

原创 BI技巧丨计算组单位切换

在计算组出来之前,我们习惯利用配置表的方式,将这种数据单位转换为符合我们习惯的方式;在计算组出来之后,我们还可以通过计算组,来进一步将数据单位传递到可视化图表中。对于用户侧来讲,虽然有切片器提示当前的数据单位,但是用户更期望的是,每一个可视化图表,展示的数据标签也带单位。PowerBI自带的数据显示单位有千、百万、十亿等,很明显这些数据单位有些时候是不太符合国人的使用习惯的。可以看到,目前已经通过配置表的方式,将数据单位进行了单位转化。将其导入到PowerBI中,通过以下代码,添加日期表。

2023-05-06 10:06:28 1239 2

原创 BI技巧丨计算组折线图

但是当数据类别过多的时候,需求也在进一步深入,往往还需要我们将用户关注的重要节点标注出来,例如:最大值和最小值。后续随着软件版本的迭代和计算组功能的推出,折线图最大值和最小值问题,也有了新的解决方案。除了可以通过Fx来标注折线图的最大值和最小值以外,我们还可以通过计算组功能,对此进行补充,例如:添加最大值最小值的文本信息。折线图我们需要将最大值最小值标记出来,那么我们需要求出当前上下文的最大值最小值,才能进行后续的操作。有了最大值和最小值,我们就可以通过度量值,来对颜色进行标注了。

2023-04-28 20:46:28 691

原创 BI技巧丨计算组环形图

当我们使用Power BI时,会发现其内置了许多可视化组件,这些组件可以帮我们快速地创建各种类型的报表和仪表板,这是非常方便的。但是,我们也会发现,有些组件的细节功能并不是很完善,这就导致了我们在平常使用中会遇到各种小问题。但是,在使用环形图点击右上角进行数据导出时,我们会发现环形图无法导出数据的百分比,这就导致使用上并不能满足日常的需求。当前我们查看环形图的数据,还是正常的,现在我们点击右上角的更多选项,导出数据查看一下。通过导出的数据可以看到,环形图中的百分比数据,并没有进行导出,这就非常不便利。

2023-04-16 13:50:52 370

原创 BI技巧丨DAX Studio

日常我们对DAX进行性能优化,都是在此页面进行调试的,一般优化的方向是优先使用FE公式引擎,尽可能减少SE缓存引擎的计算或增加SE缓存命中的数量。刷新模型数据,顾名思义,这里不做解释。DMV:DMV面板主要内嵌的是一些模型的系统用语,可以对模型执行一些系统的查询,例如查看当前模型的所有度量值信息。2.构建的DAX,需要自行构建相应的上下文,即构建一张表,通过添加度量值作为新列,才能查看相关的DAX。所有查询:点击后,下方会出现一个所有查询的结果栏,会记录我们执行的所有查询记录。

2023-04-01 21:09:32 542

原创 BI技巧丨计算组优先级

白茶添加了两个比较简单的计算组,这样方便大家观察执行顺序,一个是增加10000,一个是改变数值正负,这样观测结果更加明显。白茶在之前的文章中介绍了关于计算组在PowerBI中的两个用途,实际上除了这两个用途以外,还有一个细节的知识点,也是需要大家掌握的。优先级,顾名思义,相信各位小伙伴都不会陌生,就是平常我们经常说的执行顺序。注:阈值不是越大越好,Tabular Editor默认是按照升序进行的,所以值越小,越优先执行。我们需要重点了解的是优先级是如何设定和执行的,因此本期没有其他逻辑。

2023-03-25 11:15:43 374

原创 BI技巧丨计算组格式

用字段参数的方式当然也是可以的,但是在字段参数出现之前,计算组的方式更加便捷,而且,对比字段参数,计算组还有其他用途。可以看出来,我们虽然实现了动态切换度量值,但是从实际应用上来讲,切换的同时,也希望可以同时切换数据格式的。白茶在之前的文章中曾经介绍过,计算组的用途除了避免重复造轮子外,还可以用来自定义数据格式。这里大家也可以随便写一个度量值,什么都可以,用作占位即可,白茶稍后会解释原因。这里直接引用好我们构建的度量值即可,然后针对三个计算项,每个设定相应的格式。当然,有的小伙伴会说,我用字段参数也行啊。

2023-03-18 19:42:55 663

原创 BI技巧丨计算组

在安装好Tabular Editor后,我们会在面板导航上面,发现一个新的功能区”外部工具“(其他工具安装好后,也会出现在这里)。计算组这个名词,相信很多小伙伴都听过,但也有很多小伙伴其实并没有用过这个功能,本期我们来了解一下,计算组的用途以及使用方法。这样不仅费时费力,而且后续维护起来,也是一个巨大的麻烦,而计算组的出现,很好的解决了这一烦恼。在实际工作中,我们经常会遇到同一套逻辑,针对不同的KPI,我们需要重复写DAX的情况。这里,白茶为了更好阐述计算组的用途,特意使用了较为复杂的逻辑。

2023-03-11 12:10:06 676

原创 BI-SQL丨TRIM

但是也有一些特殊情况,比如SQL Server的上游数据,有一部分线下数据,是交由用户进行维护的,那么数据就非常容易出现前后空白字符的情况。2.一些较为特殊的情况,SQL或者其他上游无法对这部分数据进行处理,我们也可以在PowerBI中利用TRIM函数进行处理,由于函数较为简单,白茶这里就不赘述了。1.通常情况下,SQL数仓在抽取上游数据进入到DW层时,都会对数据进行一下清理,这种情况下,适用上述两个SQL函数;TRIM在不同的数据库中,对应的表现形式是不一样的,这里白茶只介绍SQL Server的函数。

2023-02-26 11:49:04 140

原创 BI-SQL丨ALL、ANY、SOME

ANY:类似于OR,语法上和IN有区别,IN通常不需要搭配比较符,ANY需要和比较符搭配使用,但是从结果上看用途基本一致,只要满足一个条件,就返回TRUE。在白茶本机的数据库中,存在名为“CaseData”的数据库,存在名为“Dim_Product”的维度表。SOME:与ANY有细微差距,但是作用基本上与ANY是相同的,常规用法看作与ANY一致即可。注:SQL中ALL的用法和DAX中ALL的用法是完全不同的,小伙伴不要混淆了。ALL:类似于AND,只有当满足所有条件时,才会返回TRUE。

2023-02-11 09:45:56 453

原创 BI技巧丨近两年及当年月份数据汇总

实际业务中,比较成熟的企业会有相应的市场团队,根据以往的营业情况和当下的市场行情为当年制定合理的销售目标,但是也会有一些小企业没有相应的业务团队,那么这种情况下,需要如何制定销售目标么?2.如何将新表和原本模型关系中的日期表关联起来,是问题的核心点,可以使用TREATAS函数,也可以使用IN或者INTERSECT函数,方式不唯一;BOSS:是这样的,能不能搞个柱形图,既展示近两年的数据,又展示当年所有月份的数据,要求年月在一个维度上?这是本期的数据,仅有两列,一列日期,一列销售数量。白茶:BOSS您吩咐!

2023-01-29 09:56:16 1551 1

原创 BI技巧丨计算Topn品名

在这个例子中,我们首先利用的是CalculateTable函数可以对表进行上下文重置的特性,以及Filter函数筛选出排名小于等于3的品名。但是在某些业务场景下,其实需要的不仅仅是针对某个维度的排名,而是需要我们能够将排名前几的某些维度,作为结果呈现出来,以便进行向上汇报。BOSS:白茶,问你个事,能不能动态的根据我们的销量,告诉我销量前三的商品有哪些?对比Topn的写法,中间多了**[Rankx]函数**作为度量值中转,写法上绕了一下。这是本期的案例数据,共计三张表,一张产品表,一张分店表,一张事实表。

2023-01-14 09:17:09 1042

原创 BI技巧丨子类Top及其他

日常汇报中,留给用户阐述的时间可能并不充裕,这就要求用户在使用看板时,可以快速准确地描述出问题给上层领导,这种思路,其实就是**“帕累托二八定律”**在工作中的应用。在实际项目中,一张Dashboard看板的设计,既要考虑逻辑的准确无误,也需要考虑用户的使用体验,更多的,是需要我们带有一点产品人性化的理念去设计看板。BOSS:白茶,能不能在展示产品销量的时候,前三的展示,其他的都归为“其他”啊?这是本期的案例数据,共计三张表,一张产品表,一张分店表,一张事实表。到这里,我们的准备工作结束。

2023-01-07 14:20:02 599

原创 BI技巧丨RankxYoY

本期的问题,来自于群内小伙伴的一个实际应用场景。在实际业务中,这个需求属于常见类型,展示当前排名时,用户关注的不只是当下的排名,还有对比以往排名的变化情况,这样才能发现到底是哪些产品的排名发生了变动,变动情况是怎样的,产生变化的原因是什么,进行问题的溯源。这里用Selectedvalue其实也是可以的,用Max的好处在于可以避免切片器无筛选的情况。当然,有不喜欢分段写法的小伙伴,我们也可以一段代码出结果。群友:PowerBI可以实现两年的排名差异么?案例数据共计三张表,产品表,分店表,事实表。

2022-12-30 20:32:45 751

原创 BI技巧丨RANKX浮点运算

不添加切片器筛选的时候,总体排名和绝对排名是一样的,看起来没什么问题,但是一旦我们添加了切片器筛选,就会明显的看到,两个数值不同的度量值排名居然是一样的。这个问题产生的原因在于,我们计算依据的物理列价格和成本是包含小数的,多组小数格式数据计算会产生浮点数据,因此在底层逻辑转化过程中会造成数据的精度丢失。在大部分场合,小数是实际FACT数据中最为常见的数据类型,当小数与RANKX函数组合的时候,会产生意想不到的小问题。细心的小伙伴可能已经发现了,产品表中的价格和成本并不是整数,而是位数较多的小数。

2022-12-10 10:47:02 673 3

原创 BI-SQL丨MEGRE

MEGREMEGRE语句,在SQL的生态圈中,一直都隶属于一个比较重要的位置。要知道,在实际的项目应用中,我们经常需要从上游数据源,进行原始数据的抽取、清洗、存储、分析等操作,特别是在存储这一环节,MEGRE的作用尤为突出。举个例子:我们需要完成对上游维度信息的抽取,根据我们的设定,数仓在每日执行抽取任务之前,需要对数仓已有的维度信息进行判断,如果已有的,要核对是否与最新的数据相匹配,不匹配则进行更新操作;如果是没有的,则需要执行插入操作。常规的实现方法需要分别编写SQL语句进行条件判断,分别执行更新和插入

2022-12-03 10:34:08 278

原创 BI-SQL丨JOB

在SQL Server中,JOB属于常用功能,我们经常需要通过JOB来执行一些定时的作业任务,例如数据备份、存储过程、SSIS任务、SSAS刷新等等。在白茶本机的数据库中,存在名为“BaiCha”的数据库,存在名为“ODS_BaiCha”的表。在Backup_Table数据库中,为“ODS_BaiCha”表创建备份表,注意各列数据格式。后面的警报面板、通知面板、目标面板,白茶这里就不配置了,实际项目中小伙伴们可以酌情进行设置。对JOB任务进行命名,这里白茶命名为“Backup_Test”,并勾选启用按钮。

2022-11-26 11:38:48 786

原创 BI-SQL丨SNAPSHOT

在白茶本机的数据库中,存在名为“BaiCha”的数据库,存在名为“ODS_BaiCha”和“STG_BaiCha”的两张表。快照(Snapshot),是SQL Server中比较重要的一个功能,也是PowerBI欠缺的功能。简单来说,快照就是在数据库中进行截图,保留数据库在截图时的数据状态,以备有突发灾备情况进行数据恢复。我们在做BI项目的过程,一旦数据涉及到数据库,那么需要考量到的点就比较多。2.执行快照还原操作时,无法针对某张表进行还原,针对的是数据库整体;我们先对数据库BaiCha中的数据进行清空。

2022-11-19 21:27:07 461

原创 BI技巧丨按列排序

按列排序固然可以解决中文字段的排序问题,但是使用之后,在某些场景下,使用DAX计算,会有一些额外的问题。小伙伴们,看懂了么?当StoreName这一列,根据StoreID这一列按列排序后,我们原本的分组计算度量值和分组排名度量值都失效了。PowerBI本身内置的排序方式,是遵循ASCII国际标准的方式,这就导致了中文的默认排序对于很多小伙伴来说并不友好。当我们使用按列排序功能后,原本的字段和排序依据的字段相当于强关联,两个字段具有同等的直接筛选效果。数据比较简单,一张分店的维度信息表,一张销售事实表。

2022-11-12 16:32:39 1313

原创 BI技巧丨百分位计算

2.INC指的是Inclusive,即包含的意思,EXC指的是exclusive,即不包含的意思,因此INC和EXC的区别在于,一个包含两端值,一个不包含两端值。百分位数据计算,可以说是日常计算中比较常见的需求,通常会用于价格段位分析使用,而在PowerBI中,用于百分位计算的函数一共有四个。1.PERCENTILE与PERCENTILEX的区别,与SUM和SUMX的区别是一样的,一个是聚合函数,一个是迭代函数。5.对于EXC,若K不是1/(N+1)的倍数,则函数会进行插值,确认第K个百分位的值。

2022-11-05 18:34:56 1255 2

原创 BI技巧丨财务累计

相信小伙伴们对财务日期都不会感觉到陌生,顾名思义,财务日期就是将我们平常记账的自然日期,转化为相应的财务日期,来匹配各个公司财务记账规则。可以看到,基本上满足了我们的需求。案例数据共计两张表,一张事实表,一张日期表,其中日期表包含了财务日期、财务年份、财务季度、财务月份等。而在这三个度量值中,可以看到,白茶并没有做太多的调整,只是在第三参数移除了自然日期的筛选效果。3.其它指标,类似于财务日期同环比,可以参照以往文章,只不过维度列从自然日期转为财务日期。而在时间指标中,又存在一类特殊的指标,财务日期指标。

2022-10-22 20:40:09 640

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除