场景 通过筛选日期、款色计算该款色在所选日期所在月的铺店率。铺店率 = 累计铺货店铺数/既存店数。 累计铺货店铺数来源于进货表和零售表,而既存店数需要通过店仓维表来算。如果不使用视图数据集,需要在ETL里以店仓维表为主表左关联进货表和零售表,数据会剧烈膨胀。使用视图数据集融合多个数据源,是更为合理的数据组织。 实现方法 创建视图数据集,模型结构如下。
此场景使用了公共表表达式(CTE)定义一个临时结果集t, 用来保存统计得到的筛选日期当月的既存店数,然后在后面SQL语句内引用该结果集。这里既存店数目只受日期筛选影响,铺货店仓数目要受日期筛选和款色筛选同时影响。 with t as (SELECT count(DISTINCT input2.`店仓ID`) AS `既存店数目` FROM input2 where (input2.`开店日期` LAST_DAY([DYNAMIC_PARAMS.日期])))) SELECT a.`铺货店仓数目`,t.`既存店数目` from (SELECT COUNT( DISTINCT case when ifnull(input1.`累计进货数量`,0)+ifnull(input1.`累计零售数量`,0) > 5 then input1.`店仓ID` else null end) as `铺货店仓数目` from input1 where input1.`款色` = [DYNAMIC_PARAMS.SKC&SKU] AND input1.`月末日期` = LAST_DAY([DYNAMIC_PARAMS.日期])) as a, t
制作卡片,新建计算字段“铺店率”,拖入数值栏,保存卡片。如果预览无数据,可在卡片编辑页面右侧“参数默认值”里暂时输入有效的参数来确保制作时有数据可预览。
回到页面上,新建参数筛选器,选择视图数据集里使用的日期类型参数,保存后可以自动关联上一步新建的卡片;或者新建日期筛选器,联动界面勾选数据集里使用的日期类型参数。同理,为“款色”新建参数筛选器或者选择筛选器并联动。
最终效果如下图:
|