Quick BI的SQL传参建模能够用在什么场景

Quick B的SQL传参建模功能提供基于SQL的数据加工处理能力,减轻了IT支撑人员的工做量。在即席查询SQL中,咱们用物理字段显示别名来表示参数的占位符,配置完占位符后,就能够在查询控件中进行参数绑定。在传参建模中,本质透传的是逻辑条件,执行过程当中会将物理字段:显示别名来表示参数的占位符,配置完占位符后,就能够在查询控件中进行参数绑定。在QuickBI的SQL传参建模中,本质透传的是逻辑条件,执行过程当中会将“{物理字段:显示别名}”替换为“物理字段 > 查询值 ” 或 “物理字段 = 查询值 ” 或 “物理字段 in (查询值A、查询值B、查询值C) ” 或 “物理字段>= 查询值A and物理字段<= 查询值B”。下面咱们来看看,哪些场景会用到Quick B的SQL传参建模功能吧!大数据

场景一:任意时间段内的用户购买行为分析ui

  1. 场景描述:在零售行业每每须要分析用户的活跃度和客户的忠诚度,那么经过分析任意时间段内用户购买频率是经常使用的分析思路。
  2. 基于SQL传参如何实现:

1) SQL建模,这个场景就是典型的二次聚合分析,并且任意时间段,须要做用到子查询中,SQL建模语句以下:
select
sum(case when buy_cnt = 1 then 1 else 0 end ) as buy_cut_1,
sum(case when buy_cnt = 2 then 1 else 0 end ) as buy_cut_2,
sum(case when buy_cnt >2 and buy_cnt<=5 then 1 else 0 end ) as buy_cut_2_5,
sum(case when buy_cnt >5 and buy_cnt<=10 then 1 else 0 end ) as buy_cut_5_10,
sum(case when buy_cnt >10 and buy_cnt<=20 then 1 else 0 end ) as buy_cut_10_20,
sum(case when buy_cnt >20 then 1 else 0 end ) as buy_cut_up_20
from
(SELECT a.customer_name,
count(a.order_id) as buy_cnt
from company_sales_record_copy a
WHERE ${a.report_date : date_test } /_定义查询时间参数_/
group by a.customer_name
) b
2) 参数设置,在Quick BI中SQL传参本质上传逻辑条件,SQL传参须要选择为“日期-年月日”,供查询控件中识别数据类型。
image阿里云

3) 点击“建立数据集”,构建“任意时间屡次购买客户数”数据集
imagespa

4) 仪表板配置,以交叉表配置为例。选择对应SQL传参建模数据集,拖拽选择须要展示的字段。以下所示:
imagecode

5) 查询项绑定配置,选择SQL参数项做为查询条件项,设置查询项与图表组件的关联关系和筛选项展示形式。以下图所示:
imageblog

6) 数据验证:点击查询进行数据验证和SQL准确性验证。Quick BI的SQL引擎根据查询条件配置和SQL传参建模进行参数绑定。以下图所示:
imagerem

经过以上六步操做,就能够很好的实现SQL传参建模的全流程穿越,以此来支撑屡次聚合的复杂分析场景。get

场景2、销售库存类数据分析(SQL建模供参考)数据分析

1.场景描述:在零售行业分析任意时间段的库存和销量数据是比较经常使用的需求,经过该数据分析甄别某个商品近期销售状况和库存?针对这样的场景,如何构建Quick BI的SQL传参建模?
1) 数据样例,后台数据具体字段包括(统计日期、省份、城市、期初库存、进货量、出货量、期末库存等):
image产品

2) 须要实现结果说明,基于以上数据,假设须要分析20190801~20190820浙江杭州的销售库存数据,须要给出的结果为:(期初库存取汇总开始时间的期初库存值,期末库存取汇总结束时间的期末库存值,进货朗、出货量采用sum汇总),另外时间为筛选区间。
image

3) Quick BI中SQL建模语句以下(供参考):
SELECT QBI_T_1_.COL_2 AS '省份',

QBI_T_1_.`COL_3` AS '城市',

sum( case when QBI_T_1_.COL_1 = start_date then QBI_T_1_.COL_4else 0 end) as '期初库存',
SUM(QBI_T_1_.COL_5) AS '进货量',
SUM(QBI_T_1_.COL_6) AS '出货量',
SUM(case when QBI_T_1_.COL_1 = end_date then QBI_T_1_.COL_7 else 0 end ) as '期末库存'
FROM quickbi_test.QBI_0808_1566542575222 AS QBI_T_1_ /_每日库存销量表_/
left join (
select min(a.COL_1) as start_date,
max(a.COL_1) as end_date
FROM quickbi_test.QBI_0808_1566542575222 AS a /_每日库存销量表_/
where ${a.COL_1:report_date} /_查询项中绑定的SQL传参_/

) b /*获取待汇总的统计时间*/

on (

QBI_T_1_.COL_1 >= start_date

and QBI_T_1_.COL_1 <= end_date

)

group by QBI_T_1_.COL_2,

QBI_T_1_.`COL_3`

阿里巴巴数据中台团队,致力于输出阿里云数据智能的最佳实践,助力每一个企业建设本身的数据中台,进而共同实现新时代下的智能商业!
阿里巴巴数据中台解决方案,核心产品:
Dataphin,以阿里巴巴大数据核心方法论OneData为内核驱动,提供一站式数据构建与管理能力;
Quick BI,集阿里巴巴数据分析经验沉淀,提供一站式数据分析与展示能力;
Quick Audience,集阿里巴巴消费者洞察及营销经验,提供一站式人群圈选、洞察及营销投放能力,链接阿里巴巴商业,实现用户增加。

原文连接

本文为云栖社区原创内容,未经容许不得转载。

相关文章
相关标签/搜索