A B C D Time
abraham abraham 123456 654321 2010-6-26 5:11
abraham abuse 123456 654321 2010-6-26 5:11
abraham access 123456 654321 2010-6-26 5:11
abraham account 123456 654321 2010-6-26 5:11
abraham accounts 123456 654321 2010-6-26 5:11
abraham adam 123456 654321 2010-6-26 5:11
abraham adm 123456 654321 2010-6-26 5:11
abraham admin2 123456 654321 2010-6-26 5:11
abraham admin 123456 654321 2010-6-26 5:11
abraham adrian 123456 654321 2010-6-26 5:11
aerial aerial 123456 654321 2010-6-26 5:11
agent agent 123456 654321 2010-6-26 5:12
alan alan 123456 654321 2010-6-26 5:12
abraham albert 123456 654321 2010-6-26 5:12
alberto alberto 123456 654321 2010-6-26 5:12
abraham alfonso 123456 654321 2010-6-26 5:13
alfred alfred 123456 654321 2010-6-26 5:13
alice alice 123456 654321 2010-6-26 5:13
alicia alicia 123456 654321 2010-6-26 5:13
alison alison 123456 654321 2010-6-26 5:13
allen allen 123456 654321 2010-6-26 5:14
allie allie 123456 654321 2010-6-26 5:14
allie alpha 123456 654321 2010-6-26 5:14
allie alvin 123456 654321 2010-6-26 5:14
allie amelia 123456 654321 2010-6-26 5:14
allie alyssa 123456 654321 2010-6-26 5:14
allie amanda 123456 654321 2010-6-26 5:14
andre andre 223457 654321 2010-6-26 5:15
anderson anderson 223458 654321 2010-6-26 5:15
andreea andreea 223459 654321 2010-6-26 5:15如上段数据,在很短的两分钟内,很多字段的A相同,B不同,我想挑出这些数据,谢谢。
规则可以按照: 两分钟内出现了对于相同的A,出现5个以上的不同B的所有数据。
谢谢。
abraham abraham 123456 654321 2010-6-26 5:11
abraham abuse 123456 654321 2010-6-26 5:11
abraham access 123456 654321 2010-6-26 5:11
abraham account 123456 654321 2010-6-26 5:11
abraham accounts 123456 654321 2010-6-26 5:11
abraham adam 123456 654321 2010-6-26 5:11
abraham adm 123456 654321 2010-6-26 5:11
abraham admin2 123456 654321 2010-6-26 5:11
abraham admin 123456 654321 2010-6-26 5:11
abraham adrian 123456 654321 2010-6-26 5:11
aerial aerial 123456 654321 2010-6-26 5:11
agent agent 123456 654321 2010-6-26 5:12
alan alan 123456 654321 2010-6-26 5:12
abraham albert 123456 654321 2010-6-26 5:12
alberto alberto 123456 654321 2010-6-26 5:12
abraham alfonso 123456 654321 2010-6-26 5:13
alfred alfred 123456 654321 2010-6-26 5:13
alice alice 123456 654321 2010-6-26 5:13
alicia alicia 123456 654321 2010-6-26 5:13
alison alison 123456 654321 2010-6-26 5:13
allen allen 123456 654321 2010-6-26 5:14
allie allie 123456 654321 2010-6-26 5:14
allie alpha 123456 654321 2010-6-26 5:14
allie alvin 123456 654321 2010-6-26 5:14
allie amelia 123456 654321 2010-6-26 5:14
allie alyssa 123456 654321 2010-6-26 5:14
allie amanda 123456 654321 2010-6-26 5:14
andre andre 223457 654321 2010-6-26 5:15
anderson anderson 223458 654321 2010-6-26 5:15
andreea andreea 223459 654321 2010-6-26 5:15如上段数据,在很短的两分钟内,很多字段的A相同,B不同,我想挑出这些数据,谢谢。
规则可以按照: 两分钟内出现了对于相同的A,出现5个以上的不同B的所有数据。
谢谢。
from tablename
where (a,b) in
(select a,b
from tablename
group by a,b
having count(*)>5
)
这句只能找出 对于相同的A,出现5个以上的B值的数据。 不能体现5个以上不同B值的数据
select * from tb11;
A B TIME C D
abraham abraham 2010-06-26 05:11:00 654321 123456
abraham abuse 2010-06-26 05:11:00 654321 123456
abraham access 2010-06-26 05:11:00 654321 123456
abraham account 2010-06-26 05:11:00 654321 123456
abraham account 2010-06-26 05:11:00 654321 123456
abraham adm 2010-06-26 05:11:00 654321 123456
abraham adm 2010-06-26 05:11:00 654321 123456
abraham admin 2010-06-26 05:11:00 654321 123456
abraham admin 2010-06-26 05:11:00 654321 123456
abraham adrian 2010-06-26 05:11:00 654321 123456
aerial aerial 2010-06-26 05:11:00 654321 123456
agent agent 2010-06-26 05:12:00 654321 123456
alan alan 2010-06-26 05:12:00 654321 123456
abraham albert 2010-06-26 05:12:00 123456 123456
alberto alberto 2010-06-26 05:12:00 123456 123456
abraham albert 2010-06-26 05:12:00 654321 123456
alberto alberto 2010-06-26 05:12:00 654321 123456
abraham alfonso 2010-06-26 05:13:00 654321 123456select ta.* from
(select a,b,c,d,time,decode(mod((time-bs)*24*60,2),0,(time-bs)*24*60/2+1,floor((time-bs)*24*60/2+1)) as cnt
from tb11,(select min(time) as bs from tb11) t) ta
where (ta.a,ta.cnt) in (
--求出2分钟内A同,B不同并且B有5种以上的记录,
select a,cnt from
( --求出2分钟内不重复记录
select distinct a,b,cnt
from(
--所有记录按2分钟进行分组
select a,b,time,decode(mod((time-bs)*24*60,2),0,(time-bs)*24*60/2+1,floor((time-bs)*24*60/2+1)) as cnt
from tb11,(select min(time) as bs from tb11) t
)
)
group by a,cnt
having count(b)>5
)结果:
A B C D TIME CNT
abraham abraham 654321 123456 2010-06-26 05:11:00 1
abraham abuse 654321 123456 2010-06-26 05:11:00 1
abraham access 654321 123456 2010-06-26 05:11:00 1
abraham account 654321 123456 2010-06-26 05:11:00 1
abraham account 654321 123456 2010-06-26 05:11:00 1
abraham adm 654321 123456 2010-06-26 05:11:00 1
abraham adm 654321 123456 2010-06-26 05:11:00 1
abraham albert 123456 123456 2010-06-26 05:12:00 1
abraham albert 654321 123456 2010-06-26 05:12:00 1
abraham admin 654321 123456 2010-06-26 05:11:00 1
abraham admin 654321 123456 2010-06-26 05:11:00 1
abraham adrian 654321 123456 2010-06-26 05:11:00 1
allie allie 654321 123456 2010-06-26 05:14:00 2
allie alpha 654321 123456 2010-06-26 05:14:00 2
allie alvin 654321 123456 2010-06-26 05:14:00 2
allie amelia 654321 123456 2010-06-26 05:14:00 2
allie alyssa 654321 123456 2010-06-26 05:14:00 2
allie amanda 654321 123456 2010-06-26 05:14:00 2