程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2循環查詢的實現方法

DB2循環查詢的實現方法

編輯:DB2教程

DB2循環查詢是經常使用的查詢方法,下面就為您詳細介紹DB2循環查詢的實現過程,如果您對此方面感興趣的話,不妨一看。

需求說明:

有一張表,三個字段,分別是 飛信號 登錄時間 下線時間

現在想依天求得在同時線用戶數。

我們的方法是將時間分成每5分鐘一個的時間點,求該點時間之前上線的,該點時間之後下線的的用戶數

然後以一天中在線用戶最多的時間點。做為當天的同時在線用戶數。

DB2循環查詢實現方法如下:

--原始數據表

  1. create table zhangmo_online(sid integer,logintime timestamp,logouttime timestamp); 

--測試數據

  1. insert into zhangmo_online  
  2. select 51982112,current timestamp,current timestamp+20 MINUTES from (values(1)) a; 

--建立5分鐘時段抽樣表

  1. create table zhangmo_onlinenum(onlinetime varchar(20),onlinenum integer); 

--建立柚樣過程

  1. create procedure zhangmo_onlinenum()  
  2.     language sql  
  3. begin  
  4. declare i timestamp;  
  5. set i=TIMESTAMP ('2008-02-01 00:00:00');  
  6. while i<TIMESTAMP ('2008-03-01 00:00:00') do  
  7. insert into zhangmo_onlinenum(onlinetime,onlinenum)   
  8.      select trim(char(year(i)))||  
  9.          right('00'||trim(char(month(i))),2)||  
  10.          right('00'||trim(char(day(i))),2)||  
  11.       right('00'||trim(char(hour(i))),2)||  
  12.       right('00'||trim(char(minute(i))),2),count(distinct sid)   
  13.       from zhangmo_online  
  14.      where logintime<i and logouttime>i;  
  15. set ii=i+5 MINUTES;  
  16. end while;  
  17. commit;  
  18. end; 

--執行過程

  1. call zhangmo_onlinenum(); 

--得到最後的數據

  1. select left(onlinetime,10),max(onlinenum) from zhangmo_onlinenum  
  2. group by left(onlinetime,10); 


 
 

DB2分區數據庫的前滾操作

DB2分區數據庫備份的實現方法

DB2 logfilsiz參數設置

在線改變DB2頁大小的實現

DB2表空間的靜默狀態

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved