Sugar BI中的 SQL 模型是指在数据源的基础上建立的 SQL 查询模型,主要包含 SQL 语句以及建模信息(包括字段名称、字段数据类型等),当然 SQL 语句可以是简单的单表查询,也可以是复杂的多表 join 甚至是 union 等复杂查询语句。
创建 SQL 模型
建立 SQL 模型非常简单,在报表或大屏的编辑模式下,单击某「图表」或「过滤条件」,控制面板的「数据」标签下,如下选择新建 SQL 模型:
在下图中,我们选择了一个「数据源」,然后编辑了一条简单的 SQL 语句:从vote_records
表中查询user_id
、create_time
两个字段,最后我们对两个字段分别进行了建模描述,录入了它们的中文名称和数据类型。
编辑 SQL 的字段模型时,右上角有工具栏小按钮,可以支持拖动排序和自动从 SQL 语句中提取字段名称等。
SQL 模型中使用表达式
SQL 模型中我们允许使用表达式(只支持加减乘除取模计算,因此在表达式中只允许出现以下字符:+
、 -
、*
、/
、%
、()
,如果想用 SQL 里面的表达式可以用as
转成别名,比如MAX(数量) as countMax
),例如下图中我们新建了两个表达式(表达式中使用到的字段需要使用{}
包围,并且需要保证使用到的字段必须是数值类型),这样在之后的图表中,我们就可以直接使用了「人均PV」
这个全新的字段了:
SQL 模型的共用
Sugar BI中一个 SQL 模型可以供多个图表共用,因此在绑定图表的数据时可以从现有的 SQL 模型中进行选择,如下图(当然,您也可以直接新建一个 SQL 模型,或者修改选中的 SQL 模型,如下图中右侧的编辑和新建按钮):
需要注意的是,修改SQL模型会影响到所有使用本模型的图表或过滤条件。
关于 SQL 中自动添加 limit 的说明
在Sugar BI中,为了防止 SQL 语句查询的结果太大,我们会默认在 SQL 语句的最后添加上limit 0, 5000
这样的语句来限制查询结果的行数(limit 0, 5000
是 MySQL 的语法,不同类型的数据库,默认添加的语法会不一样),如下图:
当然,你可以自己添加 limit,如果您自己添加了 limit,我们就不会再添加 limit 语句了,如下图:
再者,如果您使用的表格来展示数据,如果数据行数很多,可以配置后端分页来使用 limit 语法,详见『表格的后端分页』