上云无忧 > 文档中心 > 百度智能云数据可视化Sugar BI SQL建模 - SQL中行转列
数据可视化Sugar BI
百度智能云数据可视化Sugar BI SQL建模 - SQL中行转列

文档简介:
什么是行转列?首先看一个简单明了的例子: 数据库中存储的数据格式是这样的: 但是想展示的数据是这样的: 上面的例子就是典型的行转列,我们把 name 字段中的每种取值都转换成了一个列来展示,并且将 val 字段的取值作为了转换后新列的取值。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

什么是行转列

什么是行转列?首先看一个简单明了的例子:

数据库中存储的数据格式是这样的:

但是想展示的数据是这样的:

上面的例子就是典型的行转列,我们把 name 字段中的每种取值都转换成了一个列来展示,并且将 val 字段的取值作为了转换后新列的取值。

当然,如果您对 SQL 语言比较了解,其实通过 SQL 语句就可以实现这样的行列转换,但是这样的 SQL 语句会变得很复杂,很不利于理解,因此Sugar BI提供了 SQL 模型的行转列功能。

下面就基于以上的简单例子来说明如何使用Sugar BI的行转列功能:

开启行转列

在 SQL 建模时有个开关可以开启,并且需要填入行转列的名称字段和取值字段,如下图建模时,我们不仅对的date字段做了描述,我们还对行转列之后的新列pv、uv、post做了描述,但并没有对name和val做建模,因为行转列之后就不存在这两个字段了。

特别需要注意的是:行转列时,SQL语句中select的字段需要谨慎填写,Sugar BI目前只允许您select三个字段,即除了名称和取值字段以外,只能额外select一个维度字段,大部分情况下都是日期、时间等。

绑定行转列模型到图表

将模型绑定到图表时与普通的非行转列的模型一样,因为我们已经将数据行转列了,在绑定图表数据时就可以直接使用转换后的各个列了,如下图绑定一个折线图的数据:

通过行转列可以使折线图实现多系列的展示,将转换后的字段绑定到「Y 轴」上,每个字段就是一个系列,效果图如下:

绑定所有的行转列

上面一节中,我们逐列将行转换的新列绑定到了表格中进行展示,然而,在一些情况下有可能有哪些行转换的新列我们都不确定(例如:基于上面的例子,某一天我们新增了一个指标叫做replay回帖数,此时我们只能修改 SQL 模型新增这样一列并且将它绑定到表格的列中才能展示,这样做很麻烦,而且如果以后又不断的新增指标怎么办?),因此Sugar BI允许用户将所有的行转换的列一键绑定到各图表(表格、折线、柱状、饼图等)。

如下图我们开启了绑定所有行转列,在表格的列配置中我们只绑定了一个日期列,展示时,所有的行转换的列都自动加上了包括我们并没有在 SQL 模型中申明的replay(因为我们并没有在 SQL 模型中申明,所以表头就直接展示的 replay,而不像其他的申明过的列):

在折线图中我们只需要绑定「数据」->「X 轴绑定字段」,然后将「数据」->「绑定所有的行转列」打开,此时可以将所有行转列字段绑定到折线上形成多系列效果,效果图如下:

绑定所有行转列时的列通用设置

在绑定所有行转列时,在表格组件中,可以对这些列的展示格式等进行统一的设置,如下:

行转列的累计、均值

在使用行转列功能时,Sugar BI默认在数据中自动添加了两个新列: sugar_row2col_total、sugar_row2col_avg,分别计算了行转换后的各个新列的累加值和均值。

在上面的例子中,sugar_row2col_total 表示 pv、uv、post这三个行转换后新列的累加值,sugar_row2col_avg 也是同理):

因此,报表编辑者就可以对这两列进行数据建模,并且同样可以将其绑定到图表上进行展示。

对这两列进行建模:

行转列配置字段名称映射

在使用行转列的过程中,可能会出现这样的使用场景:行转列得到的列名只是一个可读性很差的编号,虽然我们可以在绑定数据或建模的时候给它配置展示名称,但如果行转列的数据很多,岂不累死宝宝们了。所以当在图表中配置了「绑定所有的行转列」功能时,Sugar BI支持利用「数据值映射」自动将列名映射为可读性较好的值。

比如下面这个例子,type 字段是行转列后即将作为名称的字段,数据库里保存的是拼音:

直接进行行转列结果如下,可以看到这个拼音虽然可以给用户展示,但用户看到的结果并不直观:

此时可以我们配置这样一个数据值映射:

并在 SQL 模型中进行配置:

就可以完成列名的映射了:

当然,如果有几个特殊的列想在字段名称映射的同时进行特殊的配置,可以在 SQL 模型中单独添加字段并配置显示名称。 下图中对 xiaoshou 这列的展示名称进行了单独配置,还可以注意到图中的右侧红框中,对行转列结果中 xiaoshou 这一列的「取值」也配置了数据值映射:

结果如下:

相似文档
  • 数据缓存: SQL 数据源支持对数据进行缓存,如果您的数据查询比较慢,建议开启这个功能,这样开启之后下次再发起同样的查询时,将会优先使用缓存,直到缓存失效。
  • 数据自动补全是指Sugar BI将 SQL 查询出来的数据中空缺的数据自动填补上对应的值,自动补全可以自动填补零或补空(即null,对于折线图而言补空的效果是折线补空的地方无值,折线分成多段)。
  • 在实际的使用场景中,我们经常需要在 SQL 语句中嵌入一些where条件,并且这些where条件是根据用户的交互动态生成的。基于此,在Sugar BI中,我们已经支持了多种常用的「过滤条件」(日期、单选、多选等等),并且支持将这些过滤条件的取值动态嵌入到 SQL 模型的语句中,例如:
  • 下钻参数在哪里看? 对于下钻弹出的图表,最重要的就是如何知道下钻的参数有哪些?其实,在下钻弹出图表的右侧控制面板中「数据」下,单击「调试」,就能看到上层图表传递给本下钻图表的下钻参数。例如,一个饼图点击下钻弹出一个折线图:
  • 联动参数在哪里看? 对于联动的下级图表,最重要的就是如何知道联动的参数有哪些?其实,在联动的下级图表的右侧控制面板中「数据」下,单击「调试」,就能看到上层图表传递给本图表的联动参数。例如,一个饼图点击联动一个折线图:
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部