上云无忧 > 文档中心 > 百度智能云数据可视化Sugar BI SQL建模 - SQL中关联下钻参数
数据可视化Sugar BI
百度智能云数据可视化Sugar BI SQL建模 - SQL中关联下钻参数

文档简介:
下钻参数在哪里看? 对于下钻弹出的图表,最重要的就是如何知道下钻的参数有哪些?其实,在下钻弹出图表的右侧控制面板中「数据」下,单击「调试」,就能看到上层图表传递给本下钻图表的下钻参数。例如,一个饼图点击下钻弹出一个折线图:
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

有关图表如何配置下钻功能,详见图表的下钻设置。

下钻参数在哪里看

对于下钻弹出的图表,最重要的就是如何知道下钻的参数有哪些?其实,在下钻弹出图表的右侧控制面板中「数据」下,单击「调试」,就能看到上层图表传递给本下钻图表的下钻参数。例如,一个饼图点击下钻弹出一个折线图:

1、点击饼图的某一区域

2、在弹出的折线图中,右侧控制面板中单击「调试」,如下图:

3、在「调试」窗口中就能看到drillDowns字段即下钻参数,如下图:

SQL 中关联下钻参数

在绑定了图表的下钻功能之后,在下钻弹出图表中,请求下钻图表的数据时会额外附加上一些下钻的具体信息,例如,一个饼图有三个扇形区域,点击每个扇形区域时,我们在弹出的图表拉取数据时会加上drillDowns参数用来描述用户到底是点击了哪一区域。并且Sugar BI支持在伪 SQL 语句中嵌入这些下钻的参数,从而达到点击不同的区域弹出的图表的数据不同。

后端接受到的drillDowns参数的格式如下(由于Sugar BI支持多层下钻,因此drillDowns参数是个数组,数组的每项分别表示每级下钻的信息):

{ "drillDowns": [ { // 第一层下钻 "item": { "type": "专家", "type_sugar_origin": "zhuanjia",
 "id": "1", "link": "www.baidu.com", "_sugar_dd_default_": "zhuanjia" }, "fireKey": "type" },
 { // 第二层下钻 "item": { "name": "数据1", "value": [ 1218, 1461 ], "yVal": "123,457", "category":
 "dot1", "_sugar_dd_default_": "dot1", }, "fireKey": "" } ] }

和查询条件类似,伪 SQL 语句中支持关联下钻参数,有两种关联格式,分别为简单模式高级模式(下面的各个截图都是图表数据的『调试』时所展示的,左侧是原始的伪 SQL,右侧是生成的真正要在数据库上执行的 SQL 语句)。

1.简单模式

简单模式时,使用的伪语法格式为:{field = [drillDowns]} 或者 {field = [drillDowns(first)]}

  • 其中field是 SQL 中的字段名(根据您的数据表结构来决定的,和具体 SQL 有关);
  • =号是 SQL 判断逻辑词,可以支持不写判断逻辑,Sugar BI会自动补全为=,支持的逻辑词有:=, !=, <>, >=, <=, >, <, in, like, between, regexp等;
  • 下钻参数需要使用[]包围,并且必须输入drillDowns关键词;
  • 由于支持多层下钻,(first)是指第一层下钻的参数,当然我们支持不传(即 {field = [drillDowns]})默认就是最后一层,Sugar BI支持(0)、(1)...等数字取不同层,同样也支持(first)、(last)取第一层和最后一层
  • 使用简单模式时,我们默认取的是上图代码中的_sugar_dd_default_字段,这个参数是Sugar BI自动生成的,不同类型的图表在下钻时,生成这个默认字段的策略不太一样,例如饼图在下钻时,这个默认字段的取值是用户点击的饼图某一扇形区块的名称,再例如柱状图在下钻时,这个默认字段的取值是用户点击的柱体对应的 X 轴取值。

针对上面代码示例,我们可以这样取其中的默认参数(下图是下钻的下级图表数据的『调试』时所展示的,左侧是原始的伪 SQL,右侧是生成的真正的 SQL 语句):

在 95%的情况下使用简单模式就能解决您的问题,但是也有可能你需要取下钻参数中的其他数据(非_sugar_dd_default_字段),此时就需要用到下面的高级模式:

2.高级模式

高级模式时,使用的伪语法格式为:{field = [drillDowns(last).key]}

  • 其中field是 SQL 中的字段名(根据您的数据表结构来决定的,和具体 SQL 有关);
  • =号是 SQL 判断逻辑词,可以支持不写判断逻辑,Sugar BI会自动补全为=,支持的逻辑词有:=, !=, <>, >=, <=, >, <, in, like, between, regexp等;
  • 下钻参数需要使用[]包围,并且必须输入drillDowns关键词;
  • 由于支持多层下钻,(last)是指最后一层下钻的参数,当然我们支持不传(即 [drillDowns.key])默认就是最后一层,Sugar BI支持(0)、(1)...等数字取不同层,同样也支持(first)、(last)取第一层和最后一层;
  • key是映射到上面代码示例的item中的字段名;
  • 支持扩充语法(number),(raw);
  • 下钻的参数 item 中的字段有可能是个数组,Sugar BI允许你嵌入该数组的任意一个元素,语法为: [drillDowns(0).value(1)],其中的1表示数组的 index 号,他也支持扩充语法(number),格式为[drillDowns(0).value(1,number)];
  • 可以通过{field = [drillDowns(0).sugar_fireKey]}的方式取到某层的触发 ID,比如表格就可以判断是点击了哪列触发的下钻;
  • 如果 SQL 中要取的字段(key)在下钻参数中没有找到,则会用1=1替换,保证 SQL 的正常运行

针对上面代码示例,我们可以这样取其中的参数(下图是下钻的下级图表数据的『调试』时所展示的,左侧是原始的伪 SQL,右侧是生成的真正的 SQL 语句):

每种图表在点击下钻时所传递到下层图表的参数格式不尽相同(例如父图表也是使用 SQL 方式绑定的数据,Sugar BI在一些情况下会额外增加一些参数的,如数据使用了数据值映射,Sugar BI会自动将映射之前的原始值也附加上,这样在展示时是使用的映射后的中文,而在下钻时有可以将原始的英文或编码传递到后端),一定要善用图表的「调试」,通过弹出图表的“控制面板”中的“调试”按钮来查看此时下钻的参数详情,从而可以很清晰的看到有哪些参数可以嵌入到自己的 SQL 语句中。

SQL 中硬嵌入下钻参数

通常情况下,我们可以通过上面的内容将下钻参数与 SQL 的 where 绑定在一起,例如{field = [drillDowns(last).key]}

如果我们希望下钻的参数的值直接嵌入到 SQL 语句中(例如嵌入到 select 或者 from 的后面),我们可以使用SQL中硬嵌入下钻参数,语法可以如:

  • 1:{drillDowns}
  • 2:{drillDowns(0)}
  • 3:{drillDowns.key}
  • 4:{drillDowns(0).key}
  • 5:{drillDowns(first).key}
  • 6:{drillDowns(first).key(1)}
  • 7:{drillDowns(first).sugar_fireKey}

大家会发现硬嵌入和上面的关联用法很类似,下面分别解释一下:

  • 第 1 种:最常用的语法,取最后一层下钻参数中的_sugar_dd_default_默认字段
  • 第 2 种:取第一层下钻参数中的_sugar_dd_default_默认字段
  • 第 3 种:等同于{drillDowns(last).key}
  • 第 4 种:由于Sugar BI支持多层下钻,因此drillDowns参数是个数组, 所以 0 表示第 1 层下钻的,你可以修改这个数字
  • 第 5 种:first值也可以写为last,分别表示第 1 层和最后 1 层下钻的参数
  • 第 6 种:对于下钻的数据如果是一个数组,比如上一节中的散点图下钻, key(1) 中的1就是表示下钻的数据的 index
  • 第 7 种:可以通过这种方式取到某层的触发 ID,比如表格就可以判断是点击了哪列触发的下钻
  • 注意:使用硬嵌入时,和关联用法不太一样的是,如果 SQL 中要取的字段(key)在下钻参数中没有找到,则会用空字符串替换整个表达式,而不是之前的1=1

以本文上面的下钻参数为例(下图是下钻的下级图表数据的『调试』时所展示的,左侧是原始的伪 SQL,右侧是生成的真正的 SQL 语句):

相似文档
  • 联动参数在哪里看? 对于联动的下级图表,最重要的就是如何知道联动的参数有哪些?其实,在联动的下级图表的右侧控制面板中「数据」下,单击「调试」,就能看到上层图表传递给本图表的联动参数。例如,一个饼图点击联动一个折线图:
  • Sugar BI中支持在 SQL 语句中嵌入当前登录用户的邮箱(使用这种方式,您就可以让不同的用户看到不同的数据),如下语法: 需要注意:如果您将大屏或报表页面进行了公开分享,并且页面中的某一个图表的 SQL 中使用上面的嵌入登录用户的邮箱,此时就会有问题,因为公开分享的页面是不需要用户登录Sugar BI账号就能直接浏览的,所以 SQL 就获取不到当前浏览的用户是谁,因此就会出错。
  • Sugar BI中支持在伪 SQL 中嵌入一些固定的日期宏定义,主要包含: {YEAR}表示当前年。 {MONTH}表示当前月。 {DAY}表示当前日。 {HOUR}表示当前小时。 {MINUTE}表示当前分钟。 {SECOND}表示当前秒。 {MONTH}、{DAY}、{HOUR}、{MINUTE}、{SECOND}支持(number)语法,将01转换成1。 {DATE}表示当前日期 格式如:2018-04-22。
  • 在报表或大屏的公开分享时,在公开分享 URL 中您可以加入额外自定义的查询参数,并将其嵌入至图表或过滤条件的 SQL 语句中 例如,您的报表的公开分享的 URL 本来是:
  • SQL 建模中字段的展示名称可以跟随不同的交互而动态改变,例如名称中嵌入过滤条件、下钻参数、联动参数等,下面详细介绍: 嵌入过滤条件: 如下在图表的 SQL 模型的字段中: 刷新图表数据即可看到:
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部