Quick B的SQL傳參建模功能提供基於SQL的數據加工處理能力,減輕了IT支撐人員的工做量。在即席查詢SQL中,咱們用物理字段顯示別名來表示參數的佔位符,配置完佔位符後,就能夠在查詢控件中進行參數綁定。在的傳參建模中,本質透傳的是邏輯條件,執行過程當中會將物理字段:顯示別名來表示參數的佔位符,配置完佔位符後,就能夠在查詢控件中進行參數綁定。在QuickBI的SQL傳參建模中,本質透傳的是邏輯條件,執行過程當中會將「{物理字段:顯示別名}」替換爲「物理字段 > 查詢值 」 或 「物理字段 = 查詢值 」 或 「物理字段 in (查詢值A、查詢值B、查詢值C) 」 或 「物理字段>= 查詢值A and物理字段<= 查詢值B」。下面咱們來看看,哪些場景會用到Quick B的SQL傳參建模功能吧!大數據
場景一:任意時間段內的用戶購買行爲分析ui
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) 點擊「建立數據集」,構建「任意時間屢次購買客戶數」數據集
spa
4) 儀表板配置,以交叉表配置爲例。選擇對應SQL傳參建模數據集,拖拽選擇須要展示的字段。以下所示:
code
5) 查詢項綁定配置,選擇SQL參數項做爲查詢條件項,設置查詢項與圖表組件的關聯關係和篩選項展示形式。以下圖所示:
blog
6) 數據驗證:點擊查詢進行數據驗證和SQL準確性驗證。Quick BI的SQL引擎根據查詢條件配置和SQL傳參建模進行參數綁定。以下圖所示:
rem
經過以上六步操做,就能夠很好的實現SQL傳參建模的全流程穿越,以此來支撐屢次聚合的複雜分析場景。get
場景2、銷售庫存類數據分析(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 '進貨量',
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,集阿里巴巴消費者洞察及營銷經驗,提供一站式人羣圈選、洞察及營銷投放能力,鏈接阿里巴巴商業,實現用戶增加。
本文爲雲棲社區原創內容,未經容許不得轉載。