好久都沒寫東西了,最近遇到一些東東,本來以前都想過解決方法,但今天沒有辦法,也就解決的.....
呵呵;最近在更改pmis台賬資訊:
比如變電器的台賬,本來是根據變壓器的新增時間作為統計時間,但是如果有乙個月變壓器沒有新增,那麼這個月的台賬資訊就沒有,但事實上這個月的台賬有是自從新增台賬的第一條記錄到之個月為止的所有條數;
解決方法:
整體過程(其實是etl過程):truncate 兩個目標表中資料---->整合所有裝置型別的的月度新增資訊到乙個表中---> 建乙個所以所有表維度的笛卡爾積的表--->建乙個過程將新笛卡爾積表(注意:台賬的開始時間)的資料理新增到剛才新增的表(注意粒度問題)--->通過sum() over (partiton by order by ) 得到每個月的台賬資訊,
1.根據需加做所有裝置型別的台賬資訊新增到乙個表中;
2.以上操作會有乙個問題,會造成如果沒有任何維度在該月錄入,那麼在該月統計的資訊就到的;為了解決該辦法,我們要新建乙個維度笛卡爾積如下:
create table dim_changedev as
select dept_id,dept_name,dev_id,dev_name,runs_id,runs_name,svolc_id,svolc_name from
(select fid as dept_id,fdisplayname as dept_name from dim_dept where eclass=4) a,
(select devtype as dev_id,devtypename as dev_name from dim_devtype where devtype in ('165','166','167','168','170','172','173','175','176','185','186'))b,
(select scode as runs_id,srunstate as runs_name from dim_runstate where scode in ('01','02','03','04'))c,
(select sid as svolc_id,svolclass as svolc_name from dim_volclass)d;
然後根據以上的資訊,執行過程,使資料到方便的抽到「目標資料表1」中:
使用資料表中的最早時間與系統時間迴圈輸入時間,以全部補充0,不管有沒有資料;
create or replace procedure pro_changedev
isv_begindate date;
begin
select min(to_date(ed_year||'-'||ed_month||'-1','yyyy-mm-dd')) into v_begindate from ao_sbbdtj where ed_year is not null;
while v_begindate <= sysdate loop
insert into ao_sbbdtj select dev_id,0,0,to_char(v_begindate,'yyyy'),to_char(v_begindate,'mm'),dept_id,runs_id,null,dev_id from dim_changedev;
commit;
select add_months(v_begindate,1) into v_begindate from dual;
end loop;
end;
3.執行以上過程將資料新增到乙個抽取後的表中;然後再用別外乙個查詢語句:sum() over (partition by order by )子句統計資訊把資料從「目標資料表1」中插到「目標資料表2」中,這個乙個到目前每個月的統計資訊都不會放過的;---這裡不要在parttion by 中寫入year,month,因為這樣跨年就不進行累加的;
資料倉儲 資料倉儲部署
1 首先用下面的語句查詢是否有要建立的表空間 hospdw tab 和 hospdw idx 如果沒有,則把d database zyhip改為對應的路徑,有的話直接建立使用者 select tablespace name,file name,round bytes 1024 1024 0 size...
資料倉儲,什麼是資料倉儲?
資料倉儲,英文名稱為data warehouse,可簡寫為dw或dwh。資料倉儲是為企業所有級別的決策制定過程提供支援的所有型別資料的戰略集合。它是單個資料儲存,出於分析性報告和決策支援的目的而建立。為企業提供需要業務智慧型來指導業務流程改進和監視時間 成本 質量和控制。資料倉儲是決策支援系統 ds...
資料倉儲和資料倉儲分層
資料倉儲 data warehouse 可簡寫為dw或dwh。資料倉儲,是為企業所有級別的決策制定過程,提供所有型別資料支援的戰略集合。它是單個資料儲存,出於分析性報告和決策支援目的而建立。為需要業務智慧型的企業,提供指導業務流程改進 監視時間 成本 質量以及控制。1 問題簡單化,將乙個複雜的問題分...