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服务。

  1. 打开Power BI桌面
  2. 单击获取数据
  3. 从“其他”中选择“空白查询”,然后单击“连接”
  4. 选择管理参数
  5. 【新建】> 输入参数名字【服务器名字】,选择类型为【文字】,可选值选择【列表】,并且填入【默认值】
  6. 再建一个【数据库名】的参数
  7. 拿数据,新建一个数据源,选择数据库[SQL Server Database]
  8. 选择一些表
  9. 建一个简单的报表
  10. 当需要从不同的数据源拿数据的时候,在菜单栏点【编辑参数】
  11. 选择所需要的参数和值
  12. 刷新

用例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
  1. 把上面的DimCustomer表删掉,同样建一个参数
  2. 新建一个数据源,查询》高级选项》把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:参数化过滤行

  1. 新建一个参数【国家】,默认值为【United States】

2. 选择所需要过滤的表【DimSalesTerritory】,并选择列【SalesTerritoryCountry】

3. 选择文字筛选

4. 选择参数

5. 结果:可以看到只有【United States】的行

6. 这样,根据参数值,可以随时调整所需要的国家

结果:

DAX/PowerBI系列 - 查询参数用法详解(Query Parameter)的更多相关文章

  1. Python中scatter函数参数用法详解

    1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如下: 4.基本的使用方法如下: #导入必要的模块 import numpy as np import matp ...

  2. C#中Messagebox.Show()常用参数用法详解

    声明:IWin32Window owner   ,  HelpNavigator navigator ,    string keyword 上面的三个参数类型不是很了解.没有做讨论. 等以后了解多了 ...

  3. Linux(Centos)中tcpdump参数用法详解(转)

    在linux下进行编程开发的人尤其是网络编程的人会经常需要分析数据包,那么一定会用到tcpdump,下面就是关于tcpdump的使用方法说明(1). tcpdump的选项 -a       将网络地址 ...

  4. 精通awk系列(12):awk getline用法详解

    回到: Linux系列文章 Shell系列文章 Awk系列文章 getline用法详解 除了可以从标准输入或非选项型参数所指定的文件中读取数据,还可以使用getline从其它各种渠道获取需要处理的数据 ...

  5. linux管道命令grep命令参数及用法详解---附使用案例|grep

    功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...

  6. linux mount命令参数及用法详解

    linux mount命令参数及用法详解 非原创,主要来自 http://www.360doc.com/content/13/0608/14/12600778_291501907.shtml. htt ...

  7. 【转】linux expr命令参数及用法详解

    在抓包过程中,查看某个设定时间内,数据上下行多少,用命令expr 计算! --------------------------------------------------------------- ...

  8. linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)

    linux useradd(adduser)命令参数及用法详解(linux创建新用户命令) useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号 ...

  9. linux dmesg命令参数及用法详解(linux显示开机信息命令)

    linux dmesg命令参数及用法详解(linux显示开机信息命令) http://blog.csdn.net/zhongyhc/article/details/8909905 功能说明:显示开机信 ...

随机推荐

  1. bzoj 2028(会场预约)

    题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地. 这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会议的时间申请不能够冲突.也就是说,前一 ...

  2. Burnside引理与Polya定理 学习笔记

    原文链接www.cnblogs.com/zhouzhendong/p/Burnside-Polya.html 问题模型 有一个长度为 $n$ 的序列,序列中的每一个元素有 $m$ 种取值. 如果两个序 ...

  3. mysql安装运行(centos)

    http://repo.mysql.com寻找需要的版本 wget -P /opt/downloads http://repo.mysql.com/mysql57-community-release- ...

  4. Stock Chase 拓扑

    题意 给出n个公司  m条信息 当某条信息构成环了  则这条信息是错误的 统计有多少个信息是错误的 这题是一条一条读入  虽然分在拓扑排序类里面 但是不会用拓扑排序来做 可以用floyd思想来做 如果 ...

  5. SQLServer 2014 内存优化表

    内存优化表是 SQLServer 2014 的新功能,它是可以将表放在内存中,这会明显提升DML性能.关于内存优化表,更多可参考两位大侠的文章:SQL Server 2014新特性探秘(1)-内存数据 ...

  6. (二)文档请求不同源之window.name跨域

    一.基本原理 window.name不是一个普通的全局变量,而是当前窗口的名字.这里要注意的是每个iframe都有包裹它的window,而这个window 是top window的子窗口,而它自然也有 ...

  7. PostgreSQL自学笔记:7 插入、更新与删除数据

    7 插入.更新与删除数据 7.1 插入数据 先创建表person: create table person( id int not null, name char(40) not null defau ...

  8. jvm领域优秀博主

    dh5724 不过csdn iteye 博客园信息均被自己删除,只在一些问答中和引用中有部分信息. redcreen 对jvm有深入认知. RednaxelaFX oracle java 编译器开发者 ...

  9. java 解析富文本处理 img 标签

    很多项目都需要到富文本来添加内容,就好比新闻啊,旅游景点之类的,都需要使用富文本去添加数据,然而怎么我这边就发现了两个问题 1)怎样将富文本的图片的 src 获取出来? 2)后台上传的时候用的是相对路 ...

  10. Django——发送邮件

    Django--发送邮件 在web应用中,服务器对客户发送邮件来通知用户一些信息,可以使用邮件来实现. Django中提供了邮件接口,使我们可以快捷的建设一个邮件发送系统. 以下是一个简单实例: se ...