DAX/PowerBI系列 - 查询参数用法详解(Query Parameter)
PowerBI - 查询参数用法详解(Query Parameter)
很多人都不知道查询参数用来干啥,下面总结一下日常项目中常用的几个查询参数的地方。(本人不太欢hardcode的东西)
使用查询参数,我们现在可以在Power BI Desktop中创建参数,并在各种情况下使用它们。 例如,我们现在可以定义引用参数的查询以检索不同的数据集。 或者我们可以通过Filter Rows引用参数。
本质上来说,是替换字符串 – 所配置参数,对M 查询语句(字符串)进行替换,达到方便和灵活管理这些变量的目的。
一般来说我们可以在以下情况参考使用。
- 数据源(Data Source)
- 过滤行(Filter Rows)
- 保留行( Keep Rows)
- 删除行(Remove Rows)
- 替换行(Replace Rows)
- 度量值(Measures)
- 计算列(Calculated Columns)
- 计算表(Calculated Tables)
下面举两个场景栗子:
- 场景一:参数化数据源
- 场景二:参数化过滤行
下面例子中是去链接数据库的,其实知道了上面说到的本质,就可以灵活运用到其他的数据源。
场景一:参数化数据源(两个例子)
用例1: 参数化数据源 – 参数化服务器和数据库名字
假设您有不同的客户使用相同的数据库架构(模式))。 但是,托管在不同SQL Server实例中的数据库以及数据库名称是不同的。 使用查询参数,我们可以轻松地在不同的数据源之间切换,然后将报告发布到每个客户的Power BI服务。
- 打开Power BI桌面
- 单击获取数据
- 从“其他”中选择“空白查询”,然后单击“连接”
- 选择管理参数
- 【新建】> 输入参数名字【服务器名字】,选择类型为【文字】,可选值选择【列表】,并且填入【默认值】
- 再建一个【数据库名】的参数
- 拿数据,新建一个数据源,选择数据库[SQL Server Database]
- 选择一些表
- 建一个简单的报表
- 当需要从不同的数据源拿数据的时候,在菜单栏点【编辑参数】
- 选择所需要的参数和值
- 刷新
用例2:动态从数据获取数据
这里目标是参数化去拿数据的实际被执行的SQL,从而达到执行“同一个”查询(Query)但是拿到不同数据的目的。
虽然不是完全动态,但是有些时候需要根据业务拿一些不同的组合。
譬如,有时候需要用户名显示下面的值:
We should cover the combinations below for “Customer Name” column:
- Customer Name = DimCustomer的LastName
- Customer Name = DimCustomer的FirstName + LastName
- Customer Name = DimCustomer的LastName + FirstName
- · Customer Name = DimCustomer的FirstName + MiddleName + LastName
- 把上面的DimCustomer表删掉,同样建一个参数
- 新建一个数据源,查询》高级选项》把SQL填上去,然后点OK
SELECT customerkey,
geographykey,
customeralternatekey,
title,
–firstname,
–middlename,
lastname,
namestyle,
birthdate,
emailaddress,
commutedistance
FROM DIMCUSTOMER
3. 捞到数据之后,选择这个数据查询,再点击【高级】,并把 lastName 替换成 “&CustomerName&” as CustomerName 这样M就会把所选参数的值替换掉,并执行真正被替换完的SQL
4. 执行捞数据的结果
5. 在报表显摆显摆
6. 可以选这不同的组合来捞不一样的数据
7. 显示结果
注意:本质上是捞回来的数据schema是不变的(还是CustomerName),因为虽然显示不一样的值,但是不影响前端被引用到的字段(CustomerName)。
场景2:参数化过滤行
- 新建一个参数【国家】,默认值为【United States】
2. 选择所需要过滤的表【DimSalesTerritory】,并选择列【SalesTerritoryCountry】
3. 选择文字筛选
4. 选择参数
5. 结果:可以看到只有【United States】的行
6. 这样,根据参数值,可以随时调整所需要的国家
结果:
DAX/PowerBI系列 - 查询参数用法详解(Query Parameter)的更多相关文章
- Python中scatter函数参数用法详解
1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如下: 4.基本的使用方法如下: #导入必要的模块 import numpy as np import matp ...
- C#中Messagebox.Show()常用参数用法详解
声明:IWin32Window owner , HelpNavigator navigator , string keyword 上面的三个参数类型不是很了解.没有做讨论. 等以后了解多了 ...
- Linux(Centos)中tcpdump参数用法详解(转)
在linux下进行编程开发的人尤其是网络编程的人会经常需要分析数据包,那么一定会用到tcpdump,下面就是关于tcpdump的使用方法说明(1). tcpdump的选项 -a 将网络地址 ...
- 精通awk系列(12):awk getline用法详解
回到: Linux系列文章 Shell系列文章 Awk系列文章 getline用法详解 除了可以从标准输入或非选项型参数所指定的文件中读取数据,还可以使用getline从其它各种渠道获取需要处理的数据 ...
- linux管道命令grep命令参数及用法详解---附使用案例|grep
功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...
- linux mount命令参数及用法详解
linux mount命令参数及用法详解 非原创,主要来自 http://www.360doc.com/content/13/0608/14/12600778_291501907.shtml. htt ...
- 【转】linux expr命令参数及用法详解
在抓包过程中,查看某个设定时间内,数据上下行多少,用命令expr 计算! --------------------------------------------------------------- ...
- linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)
linux useradd(adduser)命令参数及用法详解(linux创建新用户命令) useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号 ...
- linux dmesg命令参数及用法详解(linux显示开机信息命令)
linux dmesg命令参数及用法详解(linux显示开机信息命令) http://blog.csdn.net/zhongyhc/article/details/8909905 功能说明:显示开机信 ...
随机推荐
- Discovery Scanning
1.NetDiscover you performe layer 2 the comand : netdiscover -r 192.168.2.0/24 or use netdiscove ...
- python安装多版本
39.107.96.81 root 123123 pyenv#可以实现python多版本控制与切换 pyenv local 3.5.1 ipython#更方便的编写python,可以补全命令彩色显示等 ...
- 安装 Docker <一>
一.docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制, ...
- Base64 加解密
import java.io.UnsupportedEncodingException; import org.apache.tomcat.util.codec.binary.Base64; /** ...
- 自己总结的C#编码规范--7.文档下载 & 总结
今天终于把这一系列的编码规范写完了,这个编码规范算上前面阅读相关书籍,前前后后总共花了一个月的时间,也算是个人的呕心沥血之作了. 本来也没打算把这个系列写的这么长,但是在写的过程中自己搜了相关的网上资 ...
- 原生js实现双向数据绑定
一.两个model之间的双向绑定 var o = { a: 0 } o.b = o.a + 1; console.log(o.a); // "0" console.log(o.b) ...
- ISP PIPLINE (五) Denoise
what is the Denoise? Denoise就是图像去噪,平滑图像,并保留图像细节. why does Denoise? 图像在采集并转换为数字信号的过程会引入一些噪声,这些噪声会让图片看 ...
- git彻底删除某个文件的全部log历史记录
git filter-branch -f --tree-filter 'rm -rf vendor/gems' HEAD git push origin --force如果log历史较多 可能需要一点 ...
- opencv coudn't find video stream from "XXX(文件名)"
opencv coudn't find video stream from "XXX(文件名)" 我用的是clion 解决方法: 把路径设为完整路径,如"C:/XXX&q ...
- Restful概念的理解和践行
在实习是leader有让我们实习生看restful相关的知识,奈何当初根基很浅,看了一篇博文,但是还是很难用自己的话来描述.现在又接触了Restful的内容,就补上一篇文章. 在Spring Fram ...