A 表字段(id(唯一),card_id(有重复),v_time,v_ip,v_location,v_sequence)
给一个参数v_ip
编写实现以时间为基础查询每两个小时内或者一个小时内出现50次的数据,先判断在这个小时内有没有50条数据,如果没有,直接查询下个小时,如果有50条数据,把多余的数据删除,只保留50条数据,可以是任意的,但是时间必须是连续的。
补充:时间字段,每个小时都有数据。请大家帮帮忙 谢谢!!
给一个参数v_ip
编写实现以时间为基础查询每两个小时内或者一个小时内出现50次的数据,先判断在这个小时内有没有50条数据,如果没有,直接查询下个小时,如果有50条数据,把多余的数据删除,只保留50条数据,可以是任意的,但是时间必须是连续的。
补充:时间字段,每个小时都有数据。请大家帮帮忙 谢谢!!
解决方案 »
- 在线倒数据时出错:TNS:packet reader failure
- 关于备份和恢复
- dblink乱码问题 [急]
- oracle的64bit版本需要怎样的操作系统,vs2005能不能开发64bit程序?
- windows 2000 advance server 安装ORACLE9i(9.2.0.1.0) 在创建数据库时出现ORA-02231错误
- 谁用过OCI涵数,近来看看.
- 初级问题:如何从一个表空间切换到另外一个表空间?如何直接访问另外一个表空间的表?
- 问个弱弱问题
- 各位高手:请教一个pl/sql问题
- 请教高手呀!!!!
- Oracle中dba赋值给一个用户名,执行存储过程提示无权限,求解
- 求sql语句
create or replace procedure test_yixl_proc
as
in_hour number(10) := 0;
vn_cnt number(4) := 0;
cursor c_cnt_perhour is
select to_number(to_char(v_time, 'yyyymmddHH')), count(1)
from test_yixl group by to_number(to_char(v_time, 'yyyymmddHH'));
begin
open c_cnt_perhour;
loop
fetch c_cnt_perhour into in_hour, vn_cnt;
exit when c_cnt_perhour%notfound;
if vn_cnt >= 50 then
delete from test_yixl where to_number(to_char(v_time, 'yyyymmddHH')) = in_hour
and rownum <= vn_cnt - 50;
commit;
end if;
end loop;
close c_cnt_perhour;
end test_yixl_proc;