BI时间维度表的创建
power bi calendar用法
power bi calendar用法
Power BI Calendar 是一种Power BI Desktop自带的日期维度工具,可用于创建日历视图。
以下为Power BI Calendar的使用方式:
1. 打开Power BI Desktop,选择“Get Data”获取数据。
2. 从数据源中选择一个包含日期数据的表格。
3. 在“Modeling”选项卡中,选择“New Table”。
4. 在弹出的对话框中输入以下公式:Calendar =
CALENDAR(MIN(Table[Date]),MAX(Table[Date]))。
5. 选择“Load”后,将Calendar表入到模型中。
6. 将“Calendar”表从“Fields”窗格中拖拽到主视图中。
7. 在“Visualizations”面板中,选择“Calendar”视图,将其拖拽到主视图中。
8. 可以使用"Format"选项卡调整视图的背景颜色、日期格式等。
9. 可以在Calendar视图中选择日期,然后在其他视图中使用该日期进行数据过
滤。
注意事项:
1. 如果您想调整日期格式,请在日期列上右键单击并选择“Change Type”> “Date/Time”> “Desired Format”。
2. 如果您需要调整日历的时间范围,请更改公式中的Table[]。
pbi时间智能函数
pbi时间智能函数PBI时间智能函数是Power BI中的一项重要工具,它可以帮助用户更好地理解和分析时间序列的数据,如销售数据、客户数据、设备数据等。
通过使用PBI时间智能函数,用户可以快速地创建时间维度、时间分层和时间聚合指标等功能,从而更好地理解和解释数据趋势和模式。
在使用PBI时间智能函数之前,需要了解一些时间序列的基本概念和操作方法。
例如,时间序列是指按时间顺序排列的数据集,用于描述某些现象或过程随时间的变化情况。
常见的时间序列有日、周、月、季度和年等单位,用户需要选择合适的时间单位来对数据进行分析。
此外,还需要了解时间维度、时间分层和时间聚合等概念。
PBI时间智能函数可以帮助用户创建时间维度,这是一个存储时间序列信息的表格,用户可以在该表格中定义时间序列的起始日期和结束日期,以及时间序列的粒度和间隔。
例如,用户可以按日、周或月等粒度定义时间序列,然后选择合适的间隔来对数据进行分析。
时间分层是指将时间序列分成多个级别,从而更好地进行数据分析和预测。
例如,用户可以将时间序列分成年、季度、月和日四个级别,在每个级别上分别进行数据分析和预测。
时间分层可以帮助用户更好地理解和解释数据趋势和模式。
时间聚合是将时间序列数据按照一定的规则汇总成更高粒度的数据,例如将日数据聚合为周数据、将周数据聚合为月数据等。
时间聚合可以帮助用户更好地理解和解释数据趋势和模式,同时也可以减少数据冗余和提高数据分析效率。
在使用PBI时间智能函数时,用户需要先创建时间维度,然后利用时间维度来创建时间分层和时间聚合指标。
PBI时间智能函数支持多种时间序列的分析方法,可以针对不同类型的数据集进行自定义操作和分析,从而更好地满足用户的需求。
总之,PBI时间智能函数是一项非常有用的工具,能够帮助用户更好地理解和分析时间序列数据,从而更好地进行数据决策和管理。
通过熟练掌握PBI时间智能函数,用户可以更好地发挥数据的价值和意义,为企业发展和增长做出更准确和有效的贡献。
power bi创建新表的方法
Power BI 是一款由微软开发的业务智能工具,它可以将数据进行可视化处理,帮助用户快速分析数据并生成报表。
在 Power BI 中,创建新的数据表能够帮助用户更好地组织和分析数据。
接下来,我们将介绍在 Power BI 中创建新表的方法。
一、使用现有数据源创建新表1. 进入 Power BI 软件,并打开一个已有的报表或数据模型。
2. 在左侧的“数据”面板中,选择一个已有的数据源,例如 Excel 表格、SQL 数据库、CSV 文件等。
3. 在数据源中选择需要使用的字段,右键点击并选择“新建表”,或者在“建模”栏中点击“新表”按钮。
4. 输入新表的名称,并编辑字段的计算方式,即可创建新表并在数据模型中显示出来。
二、导入外部数据创建新表1. 打开 Power BI 软件,选择“获取数据”菜单。
2. 在弹出的数据源选择窗口中,选择想要导入的外部数据源,例如数据库、上线服务、文件等。
3. 输入数据源的连接信息,比如数据库的服务器位置区域、用户名和密码等。
4. 在数据预览窗口中,勾选需要导入的字段或者进行转换处理,再选择“加载”按钮,即可将外部数据导入Power BI,并创建新的数据表。
三、使用 DAX 函数创建新表1. 在 Power BI 的报表视图中,点击“建模”栏中的“新表”按钮。
2. 在新表的编辑窗口中,使用 DAX 函数来定义新表的计算逻辑,例如使用 CALCULATETABLE 函数筛选出某个已有表中的特定数据,在新表中显示出来。
3. 输入新表的名称,并在公式编辑器中编写 DAX 表达式,确认后即可创建新表并在数据模型中显示出来。
通过以上方法,可以轻松地在 Power BI 中创建新的数据表,帮助用户更好地组织和分析数据,为业务决策提供更多有力的支持。
希望本文介绍的内容能够对 Power BI 的用户有所帮助。
在 Power BI 中创建新表并不仅仅局限于以上所述的方法,实际上,用户还可以通过其他途径来实现这一目标。
PowerBI中的时间智能如何利用日期表和时间轴
PowerBI中的时间智能如何利用日期表和时间轴随着大数据时代的到来,数据分析和可视化成为了现代企业中不可或缺的重要环节。
PowerBI作为一款功能强大的商业智能工具,为用户提供了丰富的数据处理和展示功能。
其中,时间智能功能使得数据的分析和可视化更加便捷和直观。
本文将介绍PowerBI中时间智能的核心组成部分:日期表和时间轴,以及它们如何协同工作来实现更高效的数据分析。
一、日期表的作用和构建日期表是PowerBI中非常重要的一个概念,它提供了时间维度的详细信息,使得分析人员可以根据时间粒度对数据进行聚合和展示。
日期表的构建方式多种多样,常见的方法有手动创建、自动生成和导入外部数据等。
1. 手动创建日期表手动创建日期表是最为直观和灵活的方式,可以根据实际需求自定义日期范围和维度。
在PowerBI的“数据”视图中,用户可以使用“新建表”功能手动创建日期表,并添加相关的日期字段,如“年份”、“季度”、“月份”、“日期”等。
手动创建日期表需要一定的时间和经验,但是可以更好地满足个性化的数据分析需求。
2. 自动生成日期表PowerBI提供了自动生成日期表的功能,用户只需在数据模型中选择一个包含日期字段的表格,点击右键并选择“自动生成日期表”,就可以快速生成一个默认的日期表。
自动生成日期表可以减少手动创建的工作量,但是可能无法满足特定的需求,需要在后续操作中进行自定义。
3. 导入外部数据除了手动创建和自动生成日期表外,用户还可以通过导入外部数据的方式创建日期表。
例如,从Excel或CSV文件中导入一个已经包含日期信息的表格,然后根据需要进行字段的调整和变换。
导入外部数据可以灵活地处理不同格式和来源的日期数据,但是需要确保导入的数据准确无误。
二、时间轴的使用和配置日期表提供了时间维度的数据,而时间轴则是展现时间维度的重要工具。
PowerBI的时间轴功能可以根据用户的需求对数据进行过滤和聚合,方便用户快速查看和对比不同时间段的数据情况。
多维分析工具FineBI如何实现图表功能
多维分析⼯具FineBI如何实现图表功能多维分析⼯具FineBI如何实现图表功能1. 描述FineBI分析除了可以⽤表格来分析各个指标并展现数据外,还可以⽤图表来进⾏指标分析,相较于表格,图表分析数据看起来更加直观。
FineBI⽀持的图表有坐标轴图(包括柱形图,堆积柱形图,折线图,⾯积图)、条形图、堆积条形图、饼图、地图、仪表盘、圆环图、⽓泡图和散点图。
下⾯为⼤家简单介绍下,图表在dashbroad以及详细配置界⾯上各个部分的组成以及基础通⽤功能介绍。
2. dashbroad2.1 添加组件在dashbroad界⾯上,拖拽适合的组件。
2.2 基础操作基础界⾯的操作与其他组件⼀样,如设置联动,去掉联动产⽣的过滤条件等。
联动的具体操作可以查看图表联动章节。
也可以复制,删除,或者导出组件。
3. 详细配置界⾯3.1 字段选择页⾯左边部分为字段选取的窗⼝,顶部可以切换不同的业务包,然后选择展开每个数据表,然后单击选择或者直接拖动字段到右边需要的区域即可,如下图所⽰:3.2 样式,属性在组件名称下⾯,有2个TAB页可以切换,即切换样式和属性。
属性就是默认展⽰界⾯,可以添加字段,设置字段的属性等。
样式界⾯的功能主要是调整图表的值轴单位,值轴显⽰名称;调整图例位置,数据标签是否显⽰。
⽽且也可以为每个图表配置不同的颜⾊即风格。
具体每个图表样式设置说明,可以去每个图表的说明章节中查看。
3.3 图表类型切换在TAB页下⾯,有⼀⾏各个图表的缩略图⼩图标。
该⾏图标⽤来设置查看模板时,该组件⽀持切换的图表样式种类。
当任何⼀个⼩图标左上⾓的复选框处于选中状态时,即保存了当前这种图表样式下的指标,维度等信息,切换该种图表样式时会按照之前设定的数据结果展⽰。
如下图所⽰,即为汇总表与柱状图的样式切换:注:如果切换的图表类型间数据区域有差别,如饼图没有系列区间,那么如果从系列区间含有字段的图表切换为饼图,此时会将该字段添加⾄分类区域。
如何在PowerBI中创建时间轴报表
如何在PowerBI中创建时间轴报表PowerBI是一款功能强大的商务智能工具,它可以帮助用户将数据转化为可视化的报表和仪表盘。
对于需要呈现时间相关数据的分析师和决策者来说,创建时间轴报表是非常重要的。
在本文中,我们将介绍如何在PowerBI中创建时间轴报表,以便更好地理解和分析时间序列数据。
1. 数据准备在创建时间轴报表之前,首先需要准备好相应的数据。
时间轴报表通常涉及到时间序列数据,例如销售数据、市场趋势等。
可以通过导入Excel、CSV文件或连接数据库等方式将数据导入PowerBI。
2. 创建时间轴报表在PowerBI的报表视图中,选择需要呈现时间轴的数据表,并选中需要使用的时间字段。
在字段列表中,右键点击时间字段,选择“创建时间轴报表”。
3. 调整时间轴设置在创建时间轴报表之后,可以通过设置来进一步调整时间轴的显示效果。
首先,可以调整时间轴的格式,例如年、月、日或小时等。
其次,可以选择时间轴的起点和终点,以及时间间隔的大小。
同时,还可以选择不同的时间轴样式和主题,使时间轴报表更具吸引力。
4. 添加其他图表和过滤器除了时间轴报表,还可以添加其他图表和过滤器来增强分析效果。
例如,可以添加柱状图、折线图、饼图等来展示不同维度的数据,同时可以通过添加过滤器来按照不同的时间范围或其他条件筛选数据。
5. 数据交互和视觉效果PowerBI支持数据交互和视觉效果的设置,使得报表更加直观和易于理解。
可以通过设置数据提示、数据筛选和交互式图表等功能,使用户能够根据需要进行数据探索和分析。
6. 报表发布与共享完成时间轴报表的创建和调整之后,可以将报表发布到PowerBI服务中,并通过链接或嵌入代码的方式与他人共享。
PowerBI服务支持在线访问和交互,使得报表可以随时随地进行查看和操作。
总结:本文介绍了如何在PowerBI中创建时间轴报表。
通过准备数据、创建报表、调整设置、添加其他图表和过滤器、设置数据交互和视觉效果以及报表发布与共享等步骤,可以创建出美观、易于理解和有用的时间轴报表。
主流BI工具如何设置时间类控件
1.描述主流BI工具FineBI的时间类控件是控件类型中的一种,显然,时间类控件是用于过滤时间的控件,数据来源只能是时间类型数据,根据时间的形式不同,时间类控件可分为五种:年份控件、年月控件、年季度控件、日期控件以及日期区间控件,如下图:根据想要过滤的参数样式选择不同类型,比如说想要查看不同年份的数据,那么在选择时间控件时就需要选择年份控件。
注:主流BI工具FineBI的时间控件不绑定字段也可以手动输入数据进行过滤,无需任何额外的设置,直接拖拽字段即可。
2.时间类控件过滤多个维度主流BI工具FineBI的时间类控件可以绑定多个维度,即可以过滤多个维度的数据,主要用于筛选多个窗体中的结果。
3.新增表格组件以WidgetDemo为例,点击前面的编辑按钮,进入主流BI工具FineBI的分析编辑界面,为该分析添加一个表格组件,设置表格的横向表头为注册时间,值为合同金额,注册时间的分组依据为月,同时将图表组件合同详细信息的合同签约时间的分组依据也改为月,如下图:4.时间类控件重新拖拽一个年月时间控件至页面中,如下图:5.点击右上角的按钮进入主流BI工具FineBI的组件配置界面,将合同信息表中的注册时间以及合同签约时间字段拖曳进来,,如下图:选中合同签约时间时间类控件,点击右上角的按钮进入主流BI工具FineBI的组件配置界面,将合同信息表中的注册时间字段拖曳进来,并将时间类控件类型改为月份,如下图:删除之前的合同签约时间控件,并将该组件名称修改为月份。
注:主流BI工具FineBI的时间控件绑定2个维度,如果这两个字段之间有关联,那么dashboard组件中数据过滤的时候,需要同时过滤2个字段所选的时间,即求交集,如果没有任何关联,只需要过滤相应字段即可。
6.效果查看如下图:。
BI中事实表,维度表和数据集市,数据仓库的理解
BI中事实表,维度表和数据集市,数据仓库的理解维度表(dimension)存放着⼀些维度属性,例如时间维度:年⽉⽇时;地域维度:省份,城市;年龄维度:⽼年,中年,青年;职称维度:⾼,中,低。
它定义了可以从哪些⾓度分析事实表。
事实表(fact)存放着⼀些业务产⽣的数据,例如:商品订购产⽣的订单信息,银⾏的流⽔信息,erp系统的办公信息。
但它不仅存放着上述事实信息,⽽且存放在事实信息与维度信息关联的键值,例如订单信息⾥⾯有⽇期字段可以和时间维度关联,可以通过银⾏中的个税流⽔与收⼊维度关联量化各个收⼊群体,erp流⽔中的员⼯号可以同职称维度表关联统计公司运⾏状态。
其实,在设计事实表与维度表的关联关系时,要引⼊两个模型结构:星型表(star)和雪花表(snow)。
顾名思义,星型表模型是事实表与每个维度表分别关联,事实表位于中央,维度表围绕事实表周围。
这种模型结构市⼀中反范式的设计⽅式。
优点是设计简单,减少了关联事实表和维度表的关联层级,查询效率会⾼⼀些,缺点是数据的冗余。
例如:事实表student(学号,年龄,姓名,国家,省份,地市,专业。
),维度表:country(国家编码,国家名称),province(省份编码,省份名称),city(国家编码,省份编码,城市编码,城市名称);则在存储来⾄同⼀省份不同地市的学⽣时,国家和省份就重复存放了。
雪花表模型则是⼀种规范的范式结构,它的数据组织⽅式是消除冗余的,能有效减少数据量;优点是减少了冗余并且在关联查询中不容易出现数据重复计算的情况,因为它引⼊了数据完整性,缺点是维护复杂,增加了关联层级,执⾏效率较低。
例如:事实表student(学号,年龄,姓名,地域,专业。
),维度表:area(地域编码,国家编码,省份编码,城市编码)country(国家编码,国家名称),province(省份编码,省份名称),city(国家编码,省份编码,城市编码,城市名称)。
接着,有上述星型表和雪花表组成的数据集合就是⼀个数据集市(datamart),其⾯向于部门级应⽤,存放少量的历史数据,数据来源于数据仓库。
bi报表开发流程
bi报表开发流程在企业管理中,报表是一种重要的工具,通过对企业数据的整理、分析和展示,帮助企业决策者做出准确的决策。
而在现代信息化时代,随着数据的爆炸式增长,如何高效地开发和生成报表成为了企业管理者面临的一项重要任务。
本文将介绍一种常用的bi报表开发流程,以帮助企业更好地进行数据分析和决策。
一、需求分析阶段在开发任何报表之前,首先需要明确报表的需求。
在这个阶段,需要与业务部门或决策者进行充分的沟通和交流,了解他们对报表的具体要求和期望。
在需求分析阶段,可以使用面谈、问卷调查等方式进行需求收集,确保对报表的需求有清晰的了解。
二、数据准备阶段在数据准备阶段,需要对所需的数据进行收集和整理。
这包括从各个数据源中提取数据,并对数据进行清洗和转换,确保数据的准确性和一致性。
在这个阶段,可以使用数据仓库、数据集成工具等来帮助完成数据的准备工作。
三、报表设计阶段在报表设计阶段,需要根据需求分析阶段的结果,对报表的结构、内容和展示方式进行设计。
在设计报表时,需要考虑报表的布局、指标的选择和展示方式等因素。
此外,还需要注意报表的易读性和可操作性,确保报表能够清晰地传达信息,并方便用户进行操作和分析。
四、报表开发阶段在报表开发阶段,需要使用bi工具或编程语言来实现报表的开发。
在选择bi工具时,需要考虑工具的功能和易用性,并根据具体需求选择合适的工具。
在开发报表时,需要根据报表设计阶段的结果,使用工具提供的功能来创建报表模板,并将数据与报表进行关联和展示。
五、报表测试阶段在报表开发完成后,需要进行报表的测试和验证。
在测试阶段,需要对报表的数据准确性、计算逻辑、展示效果等进行验证,确保报表的质量和可靠性。
此外,还需要与业务部门或决策者进行沟通,收集他们的反馈和建议,并根据反馈进行相应的修改和调整。
六、报表发布阶段在报表测试通过后,可以将报表发布给相关用户使用。
在发布阶段,需要确定报表的使用权限和访问方式,并对报表进行定期更新和维护。
BI教程(2021整理)
文件-新建-工程建一个analysis services工程名称即是工程名称,位置就是工程存放的位置,这两个可以自己选取自己想取的名字和存放的位置,其余的就无所谓了。
然后就会出现一个ssas的工程右侧的就是这个ssas工程你要配置的东西。
1、右键数据源,有个新建数据源选项,点击一下即可,就会出现下面的界面:然后点击下一步,就会出现让你选择数据源:我这里已经创立过几个常用的数据源了,所以可以直接选择,直接选定,然后点完成就可以了,不过我先给你示范下新建一个数据源。
点击基于现有连接或者新连接创立数据源,然后点击新建,就出现如下列图:这个要注意,不要更改,如果是基于SQL SERVER做的话,不要更改这个。
然后就要配置这里的效劳器名就是你的数据库所在的效劳器的地址,我把效劳器地址配置进去后,就是这样了:然后把这里改成选择使用sql server身份验证,选择后就会出现让你填写数据库的用户名和密码,填写进去后,可以选择保存密码,以后就不用再重复输入了,然后就是这样了:然后下拉框选择,就是这样:就像上一个图一样,选择数据库,然后就可以了,这里我选择的是SCM_VJIA,选择完了后,可以先测试连接一下,测试一下是否创立的正常,如果正常就如下列图:然后点击确定,确定就好了,这样我们就创立好了一个数据源。
看:这里,就是我们刚刚创立的连接,然后点击完成,会出现如下列图:这里你可以重命名数据源名称,预览里的东西是你的连接方式、数据源效劳器地址、用户名、密码、数据库等信息。
然后点击完成,这样数据源就创立完成了。
如下列图:多了一个叫做SCM_VJIA.ds的数据源是吧。
如果数据是从不同的数据库不同的效劳器来的,按照刚刚的步骤重复添加即可。
下面就是配置数据源视图:右键数据源视图,会有一个新建数据源视图,然后点击,就会出现如下界面:然后点击下一步:这个可选的关系数据源是根据你上面的数据源来决定的,你上面配置了一个数据源这里可选的就是一个数据源,你上面配置了两个数据源,这里就会有两个可选的。
powerbi教程
首先,打开电源Bi,注册并登录帐户后,将显示此界面。
Power Bi教程二此时,我们可以开始操作了。
第一步是导入我们需要的数据。
单击工具栏中的获取数据按钮,然后选择导入文件的格式。
在这里,我们使用最常见的excel格式。
Power Bi教程三找到您需要导入文件的位置,选择文件,然后单击“打开”。
加载几秒钟后,将出现一个导航器。
检查要导入的Excel页面,然后单击加载。
稍等片刻后,所需文件将被加载到电源Bi中。
Power Bi教程四个其次,我们需要编辑导入的数据。
我们单击工具栏中的“编辑查询”按钮。
出现下拉框后,选择(编辑查询)。
然后我们进入查询编辑器。
查询编辑器的左侧显示您的新查询,右侧显示您应用的步骤。
Power Bi教程五此时,您是否认为左侧的工作表2,工作表3和工作表4看起来不方便。
您必须先单击以查看数据,然后才能知道这些数据是什么。
每次单击都太麻烦了。
因此,在这一点上,我们将其重命名。
右键单击要重命名的查询,然后单击重命名。
接下来,我们在查询编辑器中处理数据,过滤掉一些不需要的数据或错误数据,然后更改数据类型。
我们在商店点击量来源中点击来源详细信息旁边的下拉按钮,然后会出现一个列表。
浏览列表后,我们将检查出错误或不必要的数据。
如此处所示,summary选项显然是错误的,因此我们选择将其删除。
Power Bi教程六然后我们单击确定。
目前,我们不需要的数据已被过滤掉。
然后,我们对其他数据执行相同的操作,过滤掉不需要的数据。
接下来,我们更改一些错误的数据类型。
例如,项目ID应该为文本格式,但以数字格式显示。
让我们右键单击标题,然后选择更改的类型-文本。
出现此选项框。
我们单击以替换当前的过渡。
以相同的方式,更改所有需要更改的数据,此步骤完成。
最后,我们单击“关闭”,然后将其应用在左上角的工具栏中。
这样,我们可以进行第二步。
Power Bi教程七第三步是建立关系。
我们已经完成了导入和清理数据。
现在,我们需要在这些数据组之间建立关系。
PowerBI技巧之PowerBI开发 第十四篇:DAX 表达式(时间+过滤+关系)
DAX表达式中包含时间关系(Time Intelligence)相关的函数,用于对日期维度进行累加、同比和环比等分析。
PowerBI能够创建关系,通过过滤器来对影响计算的上下文。
一,时间关系DAX表达式有两种方式计算累加和,TOTALxTD()是DATESxTD()的语法糖,使得PowerBI对累加和的计算更加简单。
所有的时间关系函数都包含一个特殊的dates参数,该参数有三种形式:对date/time列的引用,格式是DateTable[Date_Column]表格表达式,返回日期/时间类型的单列表布尔表达式,用于定义日期/时间值的单列表。
为了应用时间关系,按照时间对数据分析,最好单独创建一个日期维度表,并和事实表创建 1 : N 的关联,确保关系是活跃的。
日期维度的粒度设置为Day,确保日期维度表包括所有的日期数据。
1,直接计算累加和DAX中有三个函数直接用于计算累加和,TOTALMTD是按当前月计算累加和、TOTALQTD是按当前季度计算累加和、TOTALYTD是按当前年份计算累加和:TOTALMTD(<expression>,<dates>[,<filter>])TOTALQTD(<expression>,<dates>[,<filter>])TOTALYTD(<expression>,<dates>[,<filter>][,<year_end_date>])参数 expression是聚合标量值的表达式,dates是包含日期的字段,filter是过滤器,返回的是布尔值。
例如,计算当前的销售额:= TOTALMTD(SUM(InternetSales[SalesAmount]),DateTime[DateKey])2,返回xTD得所有日期返回到当前的所有日期,参数dates是只包含一个日期列的表格,函数从dates中取第一个日期作为基准:DATESMTD(<dates>)DATESQTD(<dates>)DATESYTD(<dates> [,<year_end_date>])DATESMTD()函数适用于日期维度,该日期维度必须具有连续的非重复日期,从指定数据的第一年的1月1日到去年12月31日,该函数返回一个单列表,该表由上下文中当前日期的月份的第一个月与上下文中的当前日期之间的日期组成。
PowerBI技巧之power bi日期表相对
power bi日期表相对In this article, I am going to describe how to use a date dimension table in Power BI. Using a date dimension table becomes extremely important while visualizing facts and figures over some time in the calendar. Sometimes it is possible that we do not have the continuous date values in our dataset that we are trying to work upon.在本文中,我将描述如何在Power BI中使用日期维度表。
在可视化日历中一段时间内的事实和数字时,使用日期维度表变得尤为重要。
有时,我们的数据集中可能没有连续的日期值。
For example, let us consider sales from a supermarket which remains closed on the weekends. In such a case, there will be sales only for the weekdays and no sales happening on the weekends. If we try to work on the data for such a store, then in the data source, we will not have any data for the days on which the sales were not made. However, to do time-based calculations, it is necessary to have all the dates continuously in the database to properly aggregate the results.例如,让我们考虑一家超市的销售,该超市在周末仍然关闭。
创建BI中常用日期表结构及生成其数据代码
--此脚本用于生成BI中常用的日期结构,日、月、年、季度等IF OBJECT_ID(N'THE_DATE', N'U') IS NULLBEGINCREATE TABLE [dbo].[THE_DATE]([TIME_ID] [INT] PRIMARY KEY ,[YEAR_LEVEL_ID] [INT] NULL ,[MONTH_LEVEL_ID] [VARCHAR](256) NULL ,[THE_DATE] [DATE] NULL ,[THE_YEAR] [INT] NULL ,[THE_QUARTER] [INT] NULL ,[THE_MONTH] [INT] NULL ,[THE_WEEK] [INT] NULL ,[DAY_OF_WEEK] [INT] NULL ,[XUN_OF_MONTH] [VARCHAR](256) NULL ,[DAY_OF_MONTH] [VARCHAR](256) NULL ,[QUARTER_NAME] [VARCHAR](256) NULL ,[MONTH_NAME] [VARCHAR](256) NULL ,[HALF_YEAR] [VARCHAR](256) NULL ,[XUN_OF_MONTH_CODE] [VARCHAR](256) NULL ,[CAL_YEAR] [VARCHAR](256) NULL)ENDDECLARE @time_id INT;DECLARE @begin_day DATE;DECLARE @end_day DATE;SET @time_id = 1SET @begin_day = '2020-01-01'--生成数据的起止日期SET @end_day = '2021-01-01'DECLARE @day DATE;SET @day = @begin_dayWHILE ( @day <= @end_day )BEGININSERT INTO THE_DATESELECT @time_id ,YEAR(@day) AS year_level_id ,REPLACE(CONVERT(VARCHAR(7), @day, 120), '-', '') AS month_level_id ,CONVERT(VARCHAR(10), @day, 120) AS the_Date ,YEAR(@day) AS the_Year ,( CASE WHEN MONTH(@day) >= 1AND MONTH(@day) <= 3 THEN 1WHEN MONTH(@day) >= 4AND MONTH(@day) <= 6 THEN 2WHEN MONTH(@day) >= 7AND MONTH(@day) <= 9 THEN 3WHEN MONTH(@day) >= 10AND MONTH(@day) <= 12 THEN 4ELSE NULLEND ) AS the_Quarter ,MONTH(@day) AS the_Month ,NULL AS the_Week ,NULL AS day_of_Week ,NULL AS xun_of_month ,NULL AS day_of_month ,( CASE WHEN MONTH(@day) >= 1AND MONTH(@day) <= 3 THEN '第一季度'WHEN MONTH(@day) >= 4AND MONTH(@day) <= 6 THEN '第二季度'WHEN MONTH(@day) >= 7AND MONTH(@day) <= 9 THEN '第三季度'WHEN MONTH(@day) >= 10AND MONTH(@day) <= 12 THEN '第四季度'ELSE NULLEND ) AS Quarter_Name ,NULL AS Month_Name ,NULL AS half_year ,NULL AS xun_of_month_code ,YEAR(@day) AS cal_year;SET @day = DATEADD(DAY, 1, @day);SET @time_id = @time_id + 1;END;。
PowerBI建立维度表常用的几种方式
PowerBI建立维度表常用的几种方式使用Power BI应摆脱单张表的思维,不建议在一张大宽表的基础上分析,最好先建立数据模型,而一个优秀的数据模型离不开合适的维度表。
维度也就是分析的角度,比如从日期的角度分析,模型中最好有个日期维度表;从产品角度分析,模型中应该有个产品维度表。
建立维度表的好处是,可以对每个维度单独控制,按业务需求进行分组筛选,这样才可以更方便更灵活地实现各种动态分析。
如果源数据只有一个大而平的明细表,并没有各种维度表,那么在分析之前,最好先构造维度表,以下面这个简单的明细表为例:这个明细表中有日期、产品、部门和业务员字段,如果需要从这些角度对销售情况进行分析,就要建相应的维度表,下面来看看利用DAX生成维度表的几种方式。
从表中提取一列作为维度表对于产品维度表,就可以利用VALUES函数从明细表中,提取产品名称的不重复列表来实现。
产品表 = VALUES('明细表'[产品名称])从表中提取多列作为维度表如果有部分维度之间是有对应关系的,那么就不要分开为多个独立的维度表,而应该整合为一个维度表。
比如上表中的部门和业务员字段,所属部门只算是业务员的一个属性,不用单独作为一张维度表,应把这两个字段整合到一个业务员维度表中。
从表中提取多列作为维度表可以用SUMMARIZE函数来实现。
业务员表=SUMMARIZE( '明细表', '明细表'[销售部门],'明细表'[业务员])关于SUMMARIZE函数的用法可参考:SUMMARIZE:值得你花30分钟来了解的函数!从多个表提取列作为维度表如果有两个明细表,除了上面的明细表,还有个明细表2,分别有一部分明细数据:并且两个明细表中的产品并不是完全重叠,需要从这两个表中提取产品维度放在一起,才是一个完整的产品表,那么就可以这样建产品表:产品表 =DISTINCT(UNION(VALUES('明细表'[产品名称]),VALUES('明细表2'[产品名称])))这个公式的逻辑是,先用VALUES函数分别提取两个明细表的产品名称,然后用UNION函数将它们合并起来,最后利用DISTINCT函数进行去重,就得到了一个完整不重复的产品列表。
BI2
第 1 课:添加按日期筛选报表的参数第 1 课:添加按日期筛选报表的参数通过在报表查询中包含开始日期参数和结束日期参数,可以指定用来限定从数据源检索的数据所处的日期范围。
您可以创建其他参数,以便对从数据源检索到的数据进行筛选。
在本课中,您将向查询添加@StartDate和@EndDate参数,以便限定从数据源检索的数据。
StartDate和EndDate两个报表参数是自动创建的,并显示在“报表数据”窗格中。
参数区分大小写。
查询参数以@符号作为开头,而报表参数则不然。
您将这些参数的数据类型设置为DateTime,并将看到报表查看器工具栏中会显示一个带有参数文本框的日历控件。
您还将设置这些参数的默认值,以使报表可以自动运行。
最后,您将创建未绑定到查询参数的报表参数DayofWeek,并使用该报表参数对从数据源检索到的数据进行筛选。
本教程要求您已完成教程:创建基本表报表。
打开现有报表服务器项目1.单击“开始”,依次指向“所有程序”和Microsoft SQL Server 2008 R2,单击BusinessIntelligence Development Studio。
2.在“文件”菜单上,指向“打开”,再单击“项目/解决方案”。
3.导航到Tutorial.sln。
本教程是在教程:创建基本表报表中创建的。
4.单击“确定”打开项目。
“教程”项目即在解决方案资源管理器中显示,并带有一个名为Sales Orders.rdl的报表。
注意如果解决方案资源管理器不可见,请单击“视图”菜单中的“解决方案资源管理器”。
将嵌入数据源转换为共享数据源1.在“报表数据”窗格中,右键单击数据源AdventureWorks 并选择“转换为共享数据源”。
名为AdventureWorks.rds 的数据源即被添加到“解决方案资源管理器”中。
2.在“报表数据”窗格中,右键单击AdventureWorks 数据源,并选择“数据源属性”。
power Bi 日期后缀(bins)
power Bi 日期后缀(bins)PowerBI中,日期作为最常用的分析维度,几乎每个数据模型中都需要有个日期表,根据平时分析的需要,这篇文章分享一个维度更多也更实用的日期表。
直接用DAX来建一个日期表,在PowerBI Desktop中,点击“新建表”,输入以下DAX公式:日期表=//PowerBI日期表制作方式分享var yearstart=2019 //起始年度var yearend=2021 //结束年度var weeknumbertype=2// WEEKNUM第二个参数类型,控制每周的开始时间,返回此周在一年中的编号// 1,一周从星期日开始// 2,一周从星期一开始var weekdaytype=2// WEEKDAY第二个参数类型,控制每周的开始时间,返回周几的编号// 1,一周从星期日(1) 开始,到星期六(7) 结束,编号1 到7// 2,一周从星期一(1) 开始,到星期日(7) 结束,编号1 到7// 3,一周从星期一(0) 开始,到星期日(6) 结束,编号0 到6returnGENERATE(CALENDAR(date(yearstart,1,1 ),date(yearend,12,31)),var year=YEAR([date])var month=month([Date])var quarter=QUARTER([Date])var day=day([Date])var yearmonth=year*100+monthvar weekday=WEEKDAY([Date],weekdaytype)var weekofyear=WEEKNUM([Date],weeknumbertype)return row("年",year,"季",quarter,"月",month,"日",day,"年度名称","Y"&year,"季度名称","Q"&quarter,"年度编号",year&"Q"&quarter,"年季编号",(year-yearstart)*4+quarter,"月份名称",FORMAT([Date],"oooo"),"英文月份",FORMAT([Date],"MMM"),"年度月份",yearmonth,"年月编号",(year-yearstart)*12+month,"年度第几日",INT([Date]-DATE(year,1,1)+1),"星期编号",weekday,"星期名称",FORMAT([Date],"AAAA"),"星期英文",FORMAT([Date],"DDD"),"年度第几周",weekofyear,"周编号","W"&RIGHT(0&weekofyear,2),"年周",year&"W"&RIGHT(0&weekofyear,2),"日期编码",year*10000+month*100+day))以后当我们需要建日期表时,可以直接复制上面的DAX公式制作自己的日期表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[年的第几周] [int] NULL,
)
declare @beginDate datetime, @endDate datetime, @tempdate datetime
set @beginDate = '2000-1-1'
set @endDate = '2010-1-1'
datepart(week,(dateadd(day,iid-1,'1949-01-01'))) as 年_dimension
from #tmp
/*设置主键*/
alter table tj_web_time_dimension add constraint addPrimarykey primary key(时间主键)
方法二: 使用循环
CREATE TABLE [dbo].[tj_web_time_dimension](
[时间主键] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED ,
[时间] [datetime] NULL,
set @tempDate = @beginDate
while @tempDate <= @endDate
begin
insert into tj_web_time_dimension([时间] ,[年份],[月份] ,[日期] ,[季度] ,[星期],[月的第几天],[年的第几周])
时间维度表的创建
时间维度是数据仓库最常用的维度,时间维度表创建可以用下面的代码。
方法一:使用临时表
/*起始年后的 152 年 365*151 +37 = 55152 /
/*先建好临时表 以用作主键编号 */
select top 55152 identity(int,1,1) as iid
[年份] [int] NULL,
[月份] [int] NULL,
[日期] [int] NULL,
[季度] [int] NULL,
[星期] [int] NULL,
[月的第几天] [int] NULL,
datepart(quarter,(dateadd(day,iid-1,'1949-01-01'))) as 季度,
datepart(weekday,(dateadd(day,iid-1,'1949-01-01'))) as 星期,
day(dateadd(day,iid-1,'1949-01-01')) as 月的第几天,
values(
@tempDate,
year(@tempDate),
month(@tempDate),
day(@tempDate),
datepart(quarter,@tempDate),
datepart(weekday,@tempDate),
into #tmp
from sysobjects a,sysobjects b,sysobjects c
/*写好数据select into 时间维度表 */
select
iid as 时间主键,
dateadd(day,iid-1,'1949-01-01') as 时间,
year(dateadd(day,iid-1,'1949-01-01')) as 年份,
month(dateadd(day,iid-1,'1949-01-01')) as 月份,
day(dateadd(day,iid-1,'1949-01-01')) as 日期,
day(@tempDate),
datepart(week,@tempDate)
)
set @tempDate = dateadd(day,1,@tempDate)
end