成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

同表多次查詢不同時段數據的oracle創建視圖方法

數據庫 Oracle
如果我們需要同表多次查詢不同時段數據,那么需要的視圖應該如何創建呢?下文對該視圖的創建過程作了詳細的說明,供您參考。

oracle創建視圖的方法相信大家都有一定的了解,下面為您介紹的是同表多次查詢不同時段數據的oracle創建視圖方法,希望對您有所啟迪。

項目開發過程中有一個小時流量表,分別記錄每個小時每個通道的流量,簡化字段如下(只保留有效字段):
 NAME   Null?Type
------------------------------- --------- -----
IDNUMBER(19,0)
REPORT_TIME DATE
SEND_NUM    NUMBER(19,0)
SUCCESS_NUM NUMBER(19,0)
 
現在需要創建一個視圖,字段如下:通道id,上一個小時發送成功率,上第二個小時發送成功率,上第三小時發送成功率,比如:現在是14點,則需要13點,12點,11點這三個時段的分別發送成功率,如果send_num 為0,或者null,則結果為null。

oracle創建視圖過程:

1. 時間段的處理:
to_char(sysdate,'hh24')-to_char(report_time,'hh24') 可以獲取小時差,根據結果為1,2,3 三種情況分別查詢結果。可以使用case ... when... then... end 判斷。這里有一種情況需要注意:后面一天的小時為00 ,前一天的小時為23時,需要特殊處理,否則出現負數,這里使用 +24 轉換為正數。這樣完成小時差的比較。

2. send_num 如果為null或者0時 作為除數的情況:
可以先處理send_num,如果為null或者0,直接不做計算處理。

3.列出完整的查詢語句:

  1. select  vmhr.v_mo,  
  2. vmhr.org_code,  
  3. case decode(sign(to_char(sysdate,'hh24')-to_char(report_time,'hh24')),-1,to_char  (sysdate,'hh24')-to_char(report_time,'hh24')+24,to_char(sysdate,'hh24')-to_char(report_time,'hh24')) when 1 then (select decode(nvl(send_num,0),0,null,nvl(success_num,0)/nvl(send_num,1)) from channel_flux where v_mo=vmhr.v_mo) end last_1_suss_rate,  
  4.  
  5. case decode(sign(to_char(sysdate,'hh24')-to_char(report_time,'hh24')),-1,to_char(sysdate,'hh24')-to_char(report_time,'hh24')+24,to_char(sysdate,'hh24')-to_char(report_time,'hh24')) when 2 then (select decode(nvl(send_num,0),0,null,nvl(success_num,0)/nvl(send_num,1)) from channel_flux where v_mo=vmhr.v_mo) end last_2_suss_rate,  
  6.  
  7. case decode(sign(to_char(sysdate,'hh24')-to_char(report_time,'hh24')),-1,to_char(sysdate,'hh24')-to_char(report_time,'hh24')+24,to_char(sysdate,'hh24')-to_char(report_time,'hh24')) when 3 then (select decode(nvl(send_num,0),0,null,nvl(success_num,0)/nvl(send_num,1)) from channel_flux where v_mo=vmhr.v_mo) end last_3_suss_rate  
  8. from channel_flux vmhr  

說明:sign(var) 是oracle內置函數,得到變量var的正負值,小于0 返回 -1,等于0返回0,大于0返回1. decode是oracle的內置函數,可以做簡單的判斷;case...when...then ... end 判斷條件,表示case 變量 when 滿足條件 then 執行語句 end 具體的使用可以查詢oracle的幫助文檔。

4.完成查詢后,創建視圖:
create view as .... ,補上上面的查詢語句,完成視圖需求。
 

 

 

【編輯推薦】

Oracle創建表和索引

oracle重建索引的實現

全面解析Oracle文件系統

ORACLE系統表和數據字典視圖

深度解析Oracle ERP系統模塊

責任編輯:段燃 來源: 互聯網
相關推薦

2009-04-07 10:45:43

Oracle視圖創建

2010-10-29 16:48:30

oracle查詢所有表

2010-11-16 10:42:45

Oracle創建視圖

2010-05-10 18:30:31

Oracle多表創建

2010-11-15 16:08:15

ORACLE系統表

2011-04-13 13:56:52

Oracle臨時表

2009-05-21 09:24:42

表空間查詢Oracle

2010-05-06 09:30:16

Oracle創建數據庫

2010-10-27 16:27:18

Oracle查詢

2010-10-26 16:43:58

查看Oracle索引

2010-10-26 16:33:54

創建Oracle索引

2010-09-30 14:48:26

DB2查詢

2010-04-12 16:50:47

Oracle索引聚簇表

2010-11-19 10:11:49

Oracle物化視圖

2010-11-16 10:32:01

Oracle創建表空間

2010-10-27 17:11:35

oracle查詢

2010-04-19 10:08:46

Oracle視圖

2011-08-15 10:22:19

分頁查詢數據庫

2010-11-19 10:48:44

oracle視圖

2010-05-04 08:50:24

Oracle表
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲综合国产精品 | 日韩在线免费播放 | 国产亚洲欧美在线 | 91精品国产91久久综合桃花 | www.色五月.com| 亚洲精彩视频在线观看 | 久久久亚洲 | www.亚洲精品| 国产精品资源在线观看 | 国产伦精品一区二区三区照片91 | 亚洲精品成人网 | 国产精品欧美一区喷水 | 日韩在线精品视频 | 日本欧美在线观看视频 | 国产成人精品久久二区二区91 | 美女黄网站视频免费 | 欧美一级www片免费观看 | 久久久精品一区 | 亚洲久久在线 | 高清视频一区二区三区 | 午夜久久久久 | 草比av| 久久久久久毛片免费观看 | 日本一区二区高清不卡 | 99在线免费视频 | 99re热这里只有精品视频 | 亚洲免费视频在线观看 | 欧美日韩在线国产 | 黄色三级在线播放 | 成人国产精品色哟哟 | 久久久久9999亚洲精品 | 国产1区 | 亚洲国产成人精品女人久久久 | 成年人免费在线视频 | 正在播放国产精品 | 成年人视频在线免费观看 | 日韩欧美国产一区二区三区 | 国产视频一视频二 | 国产精品九九九 | 97中文视频 | 伊人亚洲|