zoukankan      html  css  js  c++  java
  • DAX/PowerBI系列

    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. 这样,根据参数值,可以随时调整所需要的国家

     

    结果:

  • 相关阅读:
    传输中文的乱码的原因及解决方式(两次encodeURI())转码;
    git密码配置
    后台界面设计之表单设计规范参考
    RDIFramework.NET开发框架在线表单设计整合工作流程的使用
    Electron,可以将web网页程序包装成桌面应用
    分布式/微服务必配APM系统,SkyWalking让你不迷路
    终端篇——Terminal三剑客之zsh
    高性能IO之Reactor模式
    uTools 你的办公利器
    JAVA 工具类库推荐 HuTool
  • 原文地址:https://www.cnblogs.com/lizardbi/p/PowerBI-Practice-Query_Parameter.html
Copyright © 2011-2022 走看看