DB2循环查询的实现

数据库
如果在DB2数据库中要解决大表循环查询的问题,应该如何实现呢?下文对DB2循环查询的的方法进行了详细分析,希望对您有所帮助。

DB2循环查询是我们经常遇到的问题,如果碰到的是大表问题,如何让大表实现循环查询呢?下文就为您介绍大表情况下DB2循环查询的实现方法,供您参考。

需求说明:

有一张表,三个字段,分别是 飞信号 登录时间 下线时间

现在想依天求得在同时线用户数。

我们的方法是将时间分成每5分钟一个的时间点,求该点时间之前上线的,该点时间之后下线的的用户数

然后以一天中在线用户最多的时间点。做为当天的同时在线用户数。

DB2循环查询实现方法如下:

  1. --原始数据表  
  2. create table zhangmo_online(sid integer,logintime timestamp,logouttime timestamp);  
  3.  
  4. --测试数据  
  5. insert into zhangmo_online  
  6. select 51982112,current timestamp,current timestamp+20 MINUTES from (values(1)) a;  
  7.  
  8. --建立5分钟时段抽样表  
  9. create table zhangmo_onlinenum(onlinetime varchar(20),onlinenum integer);  
  10.  
  11. --建立柚样过程  
  12. create procedure zhangmo_onlinenum()  
  13.     language sql  
  14. begin  
  15. declare i timestamp;  
  16. set i=TIMESTAMP ('2008-02-01 00:00:00');  
  17. while i<TIMESTAMP ('2008-03-01 00:00:00') do  
  18. insert into zhangmo_onlinenum(onlinetime,onlinenum)   
  19.      select trim(char(year(i)))||  
  20.          right('00'||trim(char(month(i))),2)||  
  21.          right('00'||trim(char(day(i))),2)||  
  22.       right('00'||trim(char(hour(i))),2)||  
  23.       right('00'||trim(char(minute(i))),2),count(distinct sid)   
  24.       from zhangmo_online  
  25.      where logintime<i and logouttime>i;  
  26. set ii=i+5 MINUTES;  
  27. end while;  
  28. commit;  
  29. end;  
  30.  
  31. --执行过程  
  32. call zhangmo_onlinenum();  
  33.  
  34. --得到最后的数据  
  35. select left(onlinetime,10),max(onlinenum) from zhangmo_onlinenum  
  36. group by left(onlinetime,10);  
  37.  

 

 

 

【编辑推荐】

 DB2查询管理实用程序

DB2数据仓库产品简介

DB2分页的实现

DB2游标及其使用

DB2表空间的管理方式

责任编辑:段燃 来源: 互联网
相关推荐

2010-11-02 11:08:11

DB2循环查询

2010-11-04 09:50:56

DB2循环

2010-09-30 14:44:20

DB2递归查询

2010-11-03 14:52:26

DB2列转行

2009-08-25 17:20:57

C#实现OLE DB的

2010-11-02 15:56:42

DB2添加验证约束

2010-11-04 09:31:21

DB2循环语句

2010-09-30 13:37:34

DB2分页

2010-11-03 14:10:23

DB2在线备份

2010-09-30 14:48:26

DB2查询

2010-08-03 12:58:29

DB2游标循环

2010-09-30 15:29:56

DB2查询管理

2010-11-03 16:32:10

DB2创建数据库

2010-11-04 15:56:13

DB2内连接查询

2010-11-03 13:50:49

DB2删除重复数据

2015-10-23 16:40:21

DB2删除数据

2010-11-03 10:26:22

DB2存储过程

2010-11-01 17:02:52

DB2页大小

2010-08-17 16:13:32

DB2 并行版本

2010-07-28 10:13:06

DB2查询Table
点赞
收藏

51CTO技术栈公众号