本文汇总了创建数据集的常见问题。

如何通过参数SQL实现占比的灵活运算?

目前Quick BI是不支持直接计算占比的,您可以通过参数SQL创建数据集,实现占比的计算。

假设目前数据表结构为:日期(date)、省份(province)、城市(city)、销售额(order_amt)。您需要1、按城市维度汇总,计算占所属省份销售额的比值;2、日期可以选择任意区间,省份、城市可以多选。

本例以通过参数SQL构建数据集模型,参考SQL如下:
select a.city,sum(fenzi)/sum(fenmu) as ratio
from
(select province,city,sum(order_amt) fenzi
 from  zhanbi_test
 where ${date:date_para}
 and   ${province:province_para}
 and   ${city:city_para}
 group by province,city
)a
left  join
(select province,sum(order_amt) fenmu
 from  zhanbi_test
 where ${date:date_para}
 and   ${province:province_para}
 and   ${city:city_para}
 group by province
)b on a.province=b.province

上述SQL是以city字段聚合的示例,您也可以为其他字段做聚合。通过这种参数形式生成的SQL,还需要在数据集的参数设置中,将日期字段转换成日期类型后,就可以创建数据集,并仪表板中展示。

如何通过参数SQL实现累计计算?

目前通过配置方式,只支持年累计(YTD)、月累计(MTD)、季累计(QTD)。配置时,需要维度中选择日期类型的DAY字段才能配置,如下图所示。1
通过上述方式只能统计月初或年初、季初开始到所选日期的累计值,如果您需要任意选择一段时间,从选择的起始日期开始,之后再统计每个周期的累计,则需要通过参数SQL实现,月累计的参考语句如下:
select  a.mon_date,avg(a.order_num) order_num,sum(b.order_num) add_num
from (
select date_format(report_date,'%Y/%m') mon_date,count(distinct order_id) order_num,max(date_format(report_date,'%Y/%m')) max_mon_date
from  company_sales_record_copy
where ${report_date:month_date}
group by date_format(report_date,'%Y/%m')
)a
left join(
select date_format(report_date,'%Y/%m') mon_date,count(distinct order_id) order_num
from  company_sales_record_copy
where ${report_date:month_date}
group by date_format(report_date,'%Y/%m')
)b on a.max_mon_date>=b.mon_date
group by a.mon_date        

此时仪表板中,只要查询条件关联了参数字段,就可以通过筛选不同的月份区间,查询各个月份从起始月份开始,每个月的累计值。

如何通过参数SQL实现输入单个日期,可以查询最近n天数据?

目前Quick BI展示数据的逻辑为输入单个日期,只展示单个日期的数据;输入日期区间,才能展示日期区间的数据。如果有特殊需求,例如需要筛选两个图表,其中一个图表展示某一天数据,另一个图表展示该天起,最近3天的数据,则可以通过参数SQL来实现。参考SQL如下:
select   report_date,area,product_type,count(distinct order_id) order_num
from   company_sales_record
where  area in ('西南','西北','华北')
and    (${dateadd(report_date,1,'dd'):date1}
or     ${dateadd(report_date,2,'dd'):date1}
or     ${dateadd(report_date,3,'dd'):date1})
group by area,product_type,report_date

如何在创建仪表板时实现两个字段间的运算操作?

在数据集中新建计算字段,请参见新建计算字段

函数from_unixtime的返回值格式是什么?

函数from_unixtime的语法为FROM_UNIXTIME(unix_timestamp,format),返回值格式由参数Format决定。

如何解决函数from_unixtime的返回值为空?

返回值为空的问题可以通过以下两种方式解决:
  • 根据需要设置参数Format的值。
  • 创建计算字段时,指定返回值的数据类型为日期时间

如何处理重新加载被删除的数据源后,表结构同步成功但数据同步依然失败的问题?

数据源被删除后,基于该数据源的数据集也将失效。您需要重新创建相关数据集。

如何将地理数据应用到地图图表中?

在数据集编辑页面,将地理数据通过维度类型切换功能转换为相应的地理信息。请参见编辑维度

是否支持设置行级权限吗?

支持。请参见(旧版)行级权限

数据集默认显示多少条数据?

默认显示100条数据。

数据集的数据支持分页吗?

不支持。

创建新建字段时能否使用已创建的计算字段?

不支持。

是否支持将云数据库的数据集切换到自建数据库?

不支持。

不同数据库间如何实现表关联?

专业版支持MaxCompute、MySQL、Oracle、AnalyticDB for MySQL 3.0和SqlServer跨源跨数据库进行表关联,其他版本暂不支持。

MaxCompute数据源同步表结构是否有延迟?

大约会延迟15分钟。

如何在数据集中添加已删除的维度或度量?

可在数据集编辑页面,单击同步表结构,可以将已删除的字段再同步过来。

如何将数据集复制到其他工作空间?

  • 如果该数据集在个人空间下,不支持复制到其他空间。
  • 如果该数据集在群空间下,通过数据集跨空间复制功能进行操作。请参见跨空间复制数据集

如何将两个数据源中的数据应用于同一个交叉表中?

专业版支持MaxCompute、Oracle、MySQL、AnalyticDB for MySQL 3.0和SqlServer数据源跨源关联。您可以在数据集中跨源关联数据表后,再选择此数据集创建交叉表。请参见构建模型

新建字段为何无法在右侧显示?

如果是聚合型计算字段,预览数据时无法显示。因为数据集预览中只显示前100条明细数据。

在数据库中修改某字段类型后,如何处理数据集该字段类型没有更新的问题?

在数据集中删除该字段,并同步表结构。

源物理表字段变更后如何更新下游的数据集模型?

可在数据集编辑页面,单击同步表结构,可以将更新的字段再同步过来。

编辑计算字段(维度)时,出现“计算字段(维度)不能包含sum、avg、count、countd、min等聚合函数”错误。

在数据集编辑页面的维度区域, 单击目标字段右侧的设置图标,选择转换为度量后,在转换后的度量字段上使用聚合函数。

编辑计算字段(度量)时,在文本类型字段中使用sum函数,预览时出现“任务执行失败错误”。

数据类型是文本类型时,度量字段不能使用sum聚合函数。新建计算度量字段时,需要根据源字段类型选择相应的函数。关于计算字段更多内容,请参见新建计算字段

如何将Unix时间戳类型字段转化为标准日期时间类型字段?

当时间字段以Unix时间戳形式存储且数据类型文本数值时,需要通过from_unixtime函数进行转化。
  1. 在数据集编辑页面,按照图上步骤新建维度字段。1
  2. 保存数据集,进行刷新如下。2

如何删除从仪表板中导出的Null值?

1
在数据集编辑界面,对空值进行替换,操作如下:
  1. 在数据集编辑页面,按照图上步骤新建维度字段。1
  2. 保存数据集,并基于该数据集新建仪表板并分析数据。
  3. 导出仪表板数据。1

如何实现多表关联分析?

请参见构建模型