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. GRPC单向/双向流

    开始食用grpc(之二)https://www.cnblogs.com/funnyzpc/p/9570992.html 开始食用grpc(之一)https://www.cnblogs.com/funn ...

  2. python之re正则简单够用

    0. 1.参考 Python正则表达式指南 https://docs.python.org/2/library/re.html https://docs.python.org/2/howto/rege ...

  3. Java_打印从一个数到另一个数之间的整数,并每5个为一行

    import java.util.Scanner; public class Dayin_100 { public static void main(String[] args) { System.o ...

  4. Spark缓存策略

    当对同一个rdd多次执行action时,如果在磁盘上则每次执行action都会从磁盘将数据加载,如果将其缓存到内存中会提高再次action的读取速度,Spark缓存主要有cache()和persist ...

  5. Imcash科普:没有网络也可以转账比特币?你可能有些误解

    近日,据Bitcoinist消息,比特币解决方案开发商CoinKite联合创始人Rodolfo Novak和OpenBazaar联合创始人Sam Patterson在推特上宣布,两人不借助互联网和卫星 ...

  6. 杭电1532----Drainage Ditches『最大流』

    /* 网络流的最大流问题 刚学习Dinic算法.模版题 */ #include <cstring> #include <cstdio> #include <queue&g ...

  7. XV Open Cup named after E.V. Pankratiev. GP of America

    A. Area of Effect 首先最优解中必有一个点在圆的边界上. 若半径就是$R$,则枚举一个点,然后把剩下的事件极角扫描即可,时间复杂度$O(m(n+m)\log(n+m))$. 否则圆必然 ...

  8. VS的Mvc项目右键没有控制器右键菜单(转)

    今天遇到了一个比较少见的问题,我用vs2012打开一个从Svn上拉下来的mvc5项目,在Controller文件夹上右键却发现没有新建控制器的选项,在View文件夹上右键也没有新建视图的选项. 我的第 ...

  9. mobile_5 种常见适配_设备兼容

    em  参照本身元素的 font-size rem 参照 html 根元素 的 font-size 1. rem 适配   (同一元素,在不同设备上,效果一样) 适用情况: 当页面大于 独立像素375 ...

  10. 《MySQL技术内幕》读书笔记

    序章 MySQL的安装 源码编译安装 MySQL的配置 基础配置 mysqld程序:语言设置 mysqld程序:通信.网络.信息安全 mysqld程序:内存管理.优化.查询缓存区 mysqld程序:日 ...