在PowerBI的查询编辑器(Query Editor)中,用户可以使用M语言修改Query,或修改Query字段的类型,或向Query中添加数据列(Column),对Query进行修改会导致PowerBI相应地更新数据模型(Data Model),这跟使用DAX表达式修改Data Model有本质的区别:前者是修改数据表,后者是修改数据视图。PowerBI通过查询编辑器来修改数据模型,对Query的每一次修改都是一个step,用户可以根据需要增加或删除step,调整step的顺序,并可以迭代引用先前创建的step,应用这些操作对数据进行再次加工和处理,以满足数据分析的需求。

我的PowerBI开发系列的文章目录:PowerBI开发

一,修改数据类型

每一个Query都是由一系列的列和行构成的数据表,每一列都有特定的数据类型,PowerBI为每个数据类型显示特定的图标,最常用的数据类型是number和text,例如:

123表示当前列是数字类型,ABC表示当前列是字符类型。有时,从外部数据源导入数据之后,PowerBI不能确定数据的类型,此时,它会在列前方同时标记为123和ABC,用户可以通过”Change Type“把该列转换为合适的数据类型。

二,添加数据列

用户可以添加计算列,从主菜单中切换到”Add Column“面板,点击”Custom Column“,基于M公式创建新的数据列。

从左侧可用的列中,添加列和公式,PowerBI基于用户输入的表达式创建新的计算列,并添加到数据模型(Data Model)中:

三,添加排序列

在对数据进行排序时,有时不能使用DAX表达式,此时必须使用M公式,例如,对班级(Class)进行排序,使用DAX的IF函数,按照班级(Class)名称新建一个字段(Class Ordinal),

Class Ordinal = IF(Schools[Class]="一年级",1,IF(Schools[Class]="二年级",2,3))

设置Class按照Class Ordinal排序,PowerBI会抛出错误:

在这种情况下,必须使用M公式,在Schools Query中新增字段:

= Table.AddColumn(KustoQuery, "Class Ordinal",
each if [Class]="一年级" then 1else if [Class]="二年级" then 2else if [Class]="三年级" then 3else 4) 

四,查询组合

查询的组合(Combine),用于在Query级别对数据进行修改,PowerBI支持Merge和Append,你使用Merge操作连接数据,或使用Append操作追加数据。

1,数据的连接

把查询连接到一起,可以使用Home菜单中”Merge Queries as New“,通过连接操作(Join)把两个Query合并,生成新的Query。

PowerBI在进行Merge时,只支持等值条件的连接操作,等相应字段的值相等时,匹配成功。

例如,选择 EventSoldService 作为其中一个Query,点击EventId,作为连接的条件,第一个表称作左表,第二标称作右表:

也可以选择多个数据列作为连接条件,摁住Ctrl,连续点击EventId,SoldServiceId,就可以把这个字段作为连接:

在进行Merge操作时,PowerBI提供多种连接的类型,如下:

在创建Merge查询之后,默认情况下,PowerBI会把连接的右表显示在左表字段的末尾,字段名为右表名,而字段值为"Table",如下图:

用户可以点击该列上方的图标, 对右表进行扩展(Expand)或聚合(Aggregate)操作,扩展操作是指在最终的查询中显示右表的字段,聚合操作是对右表的相应字段进行聚合操作,返回聚合值。

2,数据的追加

对于一个Query,使用PowerBI可以追加数据,把另一个Query的数据追加到当前Query之中,这相当于集合的Union操作。

选中当前Query,点击“Append Queries”,可以追加一个Query,或多个Query。

而用于追加的Query,可以不显示在Report视图中,使这些Query仅仅用于提供数据。

五,转换操作

在查询编辑器中,可以对数据做变换操作(Transform),例如,分组、字符的拆分、透视、逆透视、去重和替换值等。

1,分组

Group By用于按照特定的列对现有的查询进行分组聚合,产生新的Query。

2,拆分字符

把一个字符类型Column按照分隔符,或者特定数量的字符,分割成多个数据列。

3,透视和逆透视

Pivot Column 用于对数据进行透视操作,Unpivot Column 用于对数据进行逆透视操作,完成数据的行列转换。

六,Query的其他操作

对Query分组,分组的目的是组织Query,便于查找。当Query的数量非常多时,可以按照功能或Page对不同的Query分组。

Query是否启用加载,是否包含在报表刷新中?

如果启用了“Enable load”,那么Query的数据会显示在Report View中;如果启用了”Include in report refresh“中,Query可以随着报表的刷新而自动刷新数据。

参考文档:

Power Query M Reference

Add a custom column in Power BI Desktop

转载于:https://www.cnblogs.com/ljhdo/p/4548830.html

PowerBI开发 第九篇:修改查询相关推荐

  1. PowerBI开发 第一篇:设计PowerBI报表

    PowerBI是微软新一代的交互式报表工具,把相关的静态数据转换为酷炫的可视化的,能够根据filter条件,对数据执行动态筛选,从不同的角度和粒度上分析数据.PowerBI主要由两部分组成:Power ...

  2. 项目实训----Unity多人游戏开发----第九篇

    PUN介绍 综述 简介 快速开始 申请PUN服务器 申请中国区 导包PUN 总结 综述 我们组的游戏开发主要用到的是PUN2框架,通过PUN来实现多人游戏的联机,实现信息同步以及消息的处理.下面主要介 ...

  3. UG二次开发-加工篇:查询操作所在的几何组

    函数UF_OPER_ask_geom_group用于查询指定操作所在的几何组,包括刀具组.几何体组.程序顺序组.加工方法组. 头文件: #include uf.h #include uf_ui.h # ...

  4. 开发工具篇第九讲:菜鸟入坑指南

    摘要:本文是开发工具篇第九讲:菜鸟入坑指南.针对新人上手慢的问题,写了这篇入坑指南,方便自己回顾,总结.本文分为四个部分,分别为jenkins使用技巧:常用软件操作命令:开发手册:调试手册.主要材料来 ...

  5. IOS开发数据库篇—SQLite模糊查询

    IOS开发数据库篇-SQLite模糊查询 一.示例 说明:本文简单示例了SQLite的模糊查询 1.新建一个继承自NSObject的模型 该类中的代码: 1 // 2 // YYPerson.h 3 ...

  6. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM中的查询

    前文回顾 前面的文章一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM的基本操作一文给大家介绍了如果使用ORM实现数据的读取.插入.更新与删除基本业务也讲解了ORM开发基 ...

  7. PowerBI开发 第十三篇:增量刷新

    PowerBI 将要解锁增量刷新(Incremental refresh)功能,这是一个令人期待的更新,使得PowerBI可以加载大数据集,并能减少数据的刷新时间和资源消耗,该功能目前处于预览状态,只 ...

  8. PowerBI开发 第十篇:R 脚本

    R是一种专门用于数据分析和统计的脚本语言,广泛应用在每一个需要统计和数据分析的领域.PowerBI支持R脚本,两者强强结合,使PowerBI的功能更加强大.PowerBI Desktop默认没有安装R ...

  9. 用十种编程语言开发计算器应用-第九篇-抖音小程序

    用十种编程语言开发计算器应用 C语言 C#(windows桌面软件) Swift (ios应用) python Dart(Flutter应用,跨平台,适用安卓.ios.mac.windows.web) ...

最新文章

  1. 你不知道的CSS单位
  2. mysql安装后第一次操作_MySQL数据库之mysql 安装成功以及第一次安装成功初始化密码操作...
  3. UA MATH566 统计理论10 Bootstrap简介
  4. C++中类的多态与虚函数的使用(转)
  5. 架WSUS服务器 内网自动打补丁
  6. k8s单节点部署(master ,node部分)
  7. 在Elasticsearch中查询Term Vectors词条向量信息
  8. ASP.NET性能优化小结(ASP.NETC#)(转)
  9. JAVA进阶教学之(Object类的toString方法)
  10. 面试题:左旋转字符串
  11. win7一直卡在首次使用计算机,重装win7一直停留在正在启动windows解决方法(完美解决)...
  12. 【国产化电脑】如何有效避免违规外联
  13. Hiren’s BootCD 15.2下载 – 史上最强大的WinPE U盘启动工具详细介绍
  14. 二项式展开 matlab,二项式造句_造句大全
  15. OOM and SOF
  16. android 高仿点餐,android 校园微快递APP仿饿了吗外卖校园点餐食堂点餐-1715-源码+说明资料 - 辅导代做|程序代写毕业设计|代做毕设|定制定做|计算机示例源码...
  17. 【物联网开发】正点原子STM32战舰v3+机智云AIoT+APP控制
  18. 几个有关智能的小问题
  19. 怎么用EDIUS让滚动字幕停下来
  20. 推荐一个一键AI抠图网站

热门文章

  1. python 程序员问卷调查
  2. 2022年,消费品企业应该选择什么样的会员系统?
  3. 蓝叠安卓模拟器开启开发人员模式 VS ADB连接蓝叠
  4. Android Studio无法连接上蓝叠模拟器问题
  5. Citus数据分片分布研究(三 节点故障的手动修复)
  6. 爱托才会赢,车托常用的技术揭秘
  7. 绝缘监测系统设备解决方案在工厂的研究应用-船舶电力系统
  8. 《惢客创业日记》2019.11.02(周六) 十一月份的工作计划
  9. MT【309】正弦的平方差公式
  10. 数字经济产品与服务(移动互联)