作者cyvsswc (为了专题头很大)
看板PHP
标题Re: [请益] 怎麽统计连续出现笔数="""=..
时间Mon Dec 12 01:16:14 2005
重头解释篇~+_+~
我有一个资料表是统计每五分钟会汇进一次资料的..
假设它的栏位有..
(资料表名称:end)
name total time timer
timer栏位是方便我区分每不同时间汇进来的次数用的..预设为0
name是固定那些人~可是我每次的total值不一样~
假设我每五分钟一次汇进新的筛选後资料表到end..
比方说我汇十次..在这十次中~都是同一个班上的人..
只是我要把该次total>100挑出来写入end资料表..
於是我对它进行..
$str=mysql_query("INSERT into end SELECT * FROM t1 WHERE total>100");
酱子..我的end资料表每五分钟会有筛选出来的资料加进来..
我想做的是..从end资料表中~算出有连续出现五次的人..
所以我在上面每次写入end资料表的时候..
我会对着timer+1..(另开一个php执行它..在写入end一次後就执行一次)
$up=mysql_query("UPDATE end SET timer=timer+1");
所以说当我写进三次的时候它会..
name total time timer
aa 111 14:00 3
cc 101 14:00 3
dd 150 14:00 3
aa 120 14:05 2
bb 130 14:05 2
dd 121 14:05 2
aa 180 14:10 1
bb 120 14:10 1
ee 101 14:10 1
当我第四次汇进来的时候..14:00的资料timer就会变4..
这是我要方便区分用的..
所以当我要计算它有没有连续出现五次的时候..
我只要对它
INSERT into wrong SELECT name,total,time,timer,COUNT( name )FROM end
WHERE timer <6 GROUP BY IPaddr HAVING COUNT( name ) =5
它就会计算出当name在timer1~5时COUNT的次数等於5就表示他连续..
我自动把它写进wrong资料表..
现在问题来了..
当我设timer<6时~我count只能设5就是计算它5次连续..
可是当它要是6次以上时~我不知道怎麽自动去判断它到底这个name的人
重覆出现了几次..
我不知道该怎麽去调整我where的条件= =才能算的出来XD
抱歉~为了解释写了好大一篇~但愿有详细>"<..
谢谢><..
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.85.36.57