目前Quick BI是不支持直接计算占比的,您可以通过参数SQL创建数据集,实现占比的计算。
假设目前数据表结构为:日期(date)、省份(province)、城市(city)、销售额(order_amt)。您需要1、按城市维度汇总,计算占所属省份销售额的比值;2、日期可以选择任意区间,省份、城市可以多选。
select a.city,sum(fenzi)/sum(fenmu) as ratio (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 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,还需要在数据集的参数设置中,将日期字段转换成日期类型后,就可以创建数据集,并仪表板中展示。
DAY
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') 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
此时仪表板中,只要查询条件关联了参数字段,就可以通过筛选不同的月份区间,查询各个月份从起始月份开始,每个月的累计值。
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(unix_timestamp,format) ,返回值格式由参数Format决定。
专业版支持MaxCompute、MySQL、Oracle、AnalyticDB for MySQL 3.0和SqlServer跨源跨数据库进行表关联,其他版本暂不支持。
大约会延迟15分钟。
可在数据集编辑页面,单击 同步表结构 ,可以将已删除的字段再同步过来。