- 论坛徽章:
- 0
|
大家好,我基本达到这样一个目的,但我不知道循环语句怎么写,目前比较苯,每天手动来执行。
1。查询第一个数据库的表TABLE1,得到“点击数”排名前10的ip地址
SELECT *
FROM (SELECT '点击数', userip, count(*) as useript_count
FROM TABLE1 Q
WHERE Q.BEGINTIME >= TRUNC(SYSDATE) - 1
AND Q.BEGINTIME < TRUNC(SYSDATE)
group by userip
ORDER BY count(q.userip) desc)
WHERE rownum <= 10;
2. 针对这10个ip地址,依次查询第二个数据库的TABLE2,针对TABLE2中查不到IP地址,进入TABLES1进行记录删除,否则不做处理。
select q.user_ip
from TABLE2 q
WHERE Q.START_TIME >= TRUNC(SYSDATE) - 1
AND Q.STOP_TIME < TRUNC(SYSDATE)
AND Q.APP_IDENTITY in ('viewtoo_m3','download')
AND Q.USER_IP = 'IPADDRESS' #该IPADDRESS就是TABLE1中查到的10个地址
3。进入TABLE1中进行记录删除
delete from vod_epg_dr t
where T.BEGINTIME >= TRUNC(SYSDATE) - 1
AND T.BEGINTIME < TRUNC(SYSDATE)
AND t.userip = 'IPADDRESS’; #该IPADDRESS就是TABLE2中不能查到的地址
希望哪位大哥进行指导一下,跨数据库操作,并且要对这10个ip地址一一到另一个数据中查询,查不到的就对第一个表中关于该ip的记录进行删除。 |
|