1 概述

用户可以通过编写SQL语句对数据中的表进行加工、处理再添加到数据模型中。

1、SQL查询支持直连、抽取模式。

2、如果SQL查询里的SQL语句在模型里是作为一个子查询使用,如果SQL不支持嵌套,则需要修改SQL语句或者切换为抽取模式. 

     详细可参考:直连&抽取

2 示例说明

2. 1 通过参数过滤数据

我们都知道,金融、制造等行业的数据量比较大,业务用户在分析报表的时候如果把全部的数据都拉下来,会非常耗时,所以在很多场景下,只希望拉取某天或某几天的数据的数据。

产品Demo数据源northwind数据库下的【orders】表为例,由于每天的订单数据很大,需要增加时间过滤进行查询;

具体的操作步骤如下:

如上图所示:

如果用户写好了SQL查询,想回到数据模型,建议先点击【保存】之后再点击【回到模型】;可以在模型修改数据类型、修改别名设置与其他查询的关系或者构建数据模型


2.2  通过参数控制权限

业务用户开发了“销售报表”,老板(admin)可以查看全部地区的销售数据,但是各地区的负责人只能查看对应地区的数据;

目前用户”A“是华南地区的负责人,那如何做到用户”A“只能查看”华南“地区的数据?

我们以产品自带数据源northwind数据库下的【orders】为例:【orders】存储的是各个区域、省份、城市的销售订单信息

具体的操作步骤如下:

用户通过SQL查询控制权限:

保存并回到模型,查看最终效果(预览模型):

如需要把该参数在报表层应用,可以参考:参数管理进行映射。

2.3  通过SQL实现数据加工、多表关联等

有时候IT技术人员是直接通过SQL处理、加工好对应的指标,然后让业务人员直接基于处理好的指标进行报表展现,并且查询全部数据,这时候也可以使用模型里面的SQL查询。

我们以查看“产品销售额”为例来进行说明.

以产品自带northwind数据库下的【product】、【orderdetails】为例编写SQL语句如下图:

2.4 通过SQL进行union

某软件公司北京、广州、深圳的合同数据分别存在三张表中,业务用户非常不方便分析,希望能把他们进行合并。

目前可以通过数据模型的SQL查询:写SQL语句union2个或多个不同的表

示例数据下载:合同示例数据.rar

合并前各个表展示效果:


使用 union 将数据合并到一起,如下图