最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

利用Oracle分析函數(shù)LAG求時(shí)間段內(nèi)的本期、同比、環(huán)比值

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 15:25:04
文檔

利用Oracle分析函數(shù)LAG求時(shí)間段內(nèi)的本期、同比、環(huán)比值

利用Oracle分析函數(shù)LAG求時(shí)間段內(nèi)的本期、同比、環(huán)比值:with time_dim as (select add_months(add_months(date'2013-7-1',-12),(rownum-1)) dim_month from dual connect by level =months_between(date'2014-1-1',date'2012-7-1')+1)select t.dim_month, t.c_count, nvl(t.ly_count,0) ly_count, nvl(t.lm_count,
推薦度:
導(dǎo)讀利用Oracle分析函數(shù)LAG求時(shí)間段內(nèi)的本期、同比、環(huán)比值:with time_dim as (select add_months(add_months(date'2013-7-1',-12),(rownum-1)) dim_month from dual connect by level =months_between(date'2014-1-1',date'2012-7-1')+1)select t.dim_month, t.c_count, nvl(t.ly_count,0) ly_count, nvl(t.lm_count,

with time_dim as (select add_months(add_months(date'2013-7-1',-12),(rownum-1)) dim_month from dual connect by level =months_between(date'2014-1-1',date'2012-7-1')+1)select t.dim_month, t.c_count, nvl(t.ly_count,0) ly_count, nvl(t.lm_count,

with time_dim as 
(select add_months(add_months(date'2013-7-1',-12),(rownum-1)) dim_month
 from dual connect by level <=months_between(date'2014-1-1',date'2012-7-1')+1)
select t.dim_month,
 t.c_count,
 nvl(t.ly_count,0) ly_count,
 nvl(t.lm_count,0) lm_count
 from
 (select t1.dim_month, 
 nvl(t2.c_count,0) c_count,
 lag(t2.c_count,1,0) over(order by t1.dim_month) ly_count,
 lag(t2.c_count,12,0) over(order by t1.dim_month) lm_count 
 from time_dim t1
 left join test_lzc t2
 on t1.dim_month = t2.dim_month) t
 where t.dim_month between date'2013-7-1' and date'2014-1-1'
order by 1 desc;


Oracle 分析函數(shù)LAG是用來(lái)求結(jié)果集中前一個(gè)值作為新的列的值得一個(gè)函數(shù),效率很高??梢岳么朔治龊瘮?shù)來(lái)秒求環(huán)比和同比的值,但這其中也有些問(wèn)題。LAG分析函數(shù)語(yǔ)法結(jié)構(gòu)如下:

LAG(EXPRESSION,[OFFSET],[DEFAULT]) OVER([PATITION BY COLUMN1...] ORDER BY COLUMN1...);

其中offset是偏移量,指的是在結(jié)果集中向前第OFFSET個(gè)值。

問(wèn)題:

1、如果基表中有的月份缺失,那么他就會(huì)把缺失的那部分月份漏查,直接再找前一個(gè)的值。

2、如果加入了時(shí)間篩選那么最前面的值得環(huán)比值,和所有結(jié)果集中的同比值全會(huì)找不到。

解決方案:

初始化一個(gè)時(shí)間維度,與基表關(guān)聯(lián),補(bǔ)全所有的月份,缺失的月份數(shù)值值為零。 以銷售額為例,SQL如下:

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

利用Oracle分析函數(shù)LAG求時(shí)間段內(nèi)的本期、同比、環(huán)比值

利用Oracle分析函數(shù)LAG求時(shí)間段內(nèi)的本期、同比、環(huán)比值:with time_dim as (select add_months(add_months(date'2013-7-1',-12),(rownum-1)) dim_month from dual connect by level =months_between(date'2014-1-1',date'2012-7-1')+1)select t.dim_month, t.c_count, nvl(t.ly_count,0) ly_count, nvl(t.lm_count,
推薦度:
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top