作者:潘炎峰 更多内容詳見資料中台官網 https://dp.alibaba.com
Quick B的SQL傳參模組化功能提供基于SQL的資料加工處理能力,減輕了IT支撐人員的工作量。在即席查詢SQL中,我們用${實體字段:顯示别名}來表示參數的占位符,配置完占位符後,就可以在查詢控件中進行參數綁定。在Quick BI的SQL傳參模組化中,本質透傳的是邏輯條件,執行過程中會将“${實體字段:顯示别名}”替換為“實體字段 > 查詢值 ” 或 “實體字段 = 查詢值 ” 或 “實體字段 in (查詢值A、查詢值B、查詢值C) ” 或 “實體字段>= 查詢值A and實體字段<= 查詢值B”。下面我們來看看,哪些場景會用到Quick B的SQL傳參模組化功能吧!
場景一:任意時間段内的使用者購買行為分析
- 場景描述:在零售行業往往需要分析使用者的活躍度和客戶的忠誠度,那麼通過分析任意時間段内使用者購買頻率是常用的分析思路。
- 基于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傳參需要選擇為“日期-年月日”,供查詢控件中識别資料類型。

3) 點選“建立資料集”,建構“任意時間多次購買客戶數”資料集
4) 儀表闆配置,以交叉表配置為例。選擇對應SQL傳參模組化資料集,拖拽選擇需要展現的字段。如下所示:
5) 查詢項綁定配置,選擇SQL參數項作為查詢條件項,設定查詢項與圖表元件的關聯關系和篩選項展現形式。如下圖所示:
6) 資料驗證:點選查詢進行資料驗證和SQL準确性驗證。Quick BI的SQL引擎根據查詢條件配置和SQL傳參模組化進行參數綁定。如下圖所示:
通過以上六步操作,就可以很好的實作SQL傳參模組化的全流程穿越,以此來支撐多次聚合的複雜分析場景。
場景二、銷售庫存類資料分析(SQL模組化供參考)
1.場景描述:在零售行業分析任意時間段的庫存和銷量資料是比較常用的需求,通過該資料分析甄别某個商品近期銷售情況和庫存?針對這樣的場景,如何建構Quick BI的SQL傳參模組化?
1) 資料樣例,背景資料具體字段包括(統計日期、省份、城市、期初庫存、進貨量、出貨量、期末庫存等):
2) 需要實作結果說明,基于以上資料,假設需要分析20190801~20190820浙江杭州的銷售庫存資料,需要給出的結果為:(期初庫存取彙總開始時間的期初庫存值,期末庫存取彙總結束時間的期末庫存值,進貨朗、出貨量采用sum彙總),另外時間為篩選區間。
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_4
else 0 end) as '期初庫存',
SUM(QBI_T_1_.
COL_5
) AS '進貨量',
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,集阿裡巴巴消費者洞察及營銷經驗,提供一站式人群圈選、洞察及營銷投放能力,連接配接阿裡巴巴商業,實作使用者增長。
歡迎志同道合者一起成長!更多内容詳見資料中台官網