drop table swimming_worldcup;
create table swimming_worldcup
( year number primary key,
winner_country varchar2(200),
org_country varchar2(200)
);
insert into swimming_worldcup
values ('1970','France','France');
insert into swimming_worldcup
values ('1971','ITALY','USA');
insert into swimming_worldcup
values ('1972','ITALY','Qatar');
insert into swimming_worldcup
values ('1973','USA','Germany');
insert into swimming_worldcup
values ('1974','ITALY','ITALY');
insert into swimming_worldcup
values ('1975','Canada','Rwanda');
insert into swimming_worldcup
values ('1976','Canada','Peru');
insert into swimming_worldcup
values ('1977','Canada','Armenia');
insert into swimming_worldcup
values ('1978','Azerbaijan','Armenia');
insert into swimming_worldcup
values ('1979','Oman','Norway');
insert into swimming_worldcup
values ('1980','Australia','Finland');
insert into swimming_worldcup
values ('1981','France','Denmark');
insert into swimming_worldcup
values ('1982','France','Hungary');
insert into swimming_worldcup
values ('1992','Russia','Cameroon');
insert into swimming_worldcup
values ('1993','Russia','Brazil');
insert into swimming_worldcup
values ('2000','Australia','Chad');
insert into swimming_worldcup
values ('2001','France','Colombia');
insert into swimming_worldcup
values ('2002','France','Croatia');
values ('2003','France','Cuba');
insert into swimming_worldcup
values ('2004','France','Estonia');
insert into swimming_worldcup
values ('2007','ITALY','Jordan');
select * from swimming_worldcup
select * from swimming_worldcup
where winner_country='France'
SELECT * FROM swimming_worldcup
MATCH_RECOGNIZE
(
order by year
all ROWs PER MATCH
PATTERN (fr)
DEFINE fr AS winner_country = 'France'
)
/* السجلات التي فازت فيها فرنسا مرتين متتالتين*/
SELECT * FROM swimming_worldcup
MATCH_RECOGNIZE
(
order by year
all ROWs PER MATCH
PATTERN (fr fr )
DEFINE fr AS winner_country = 'France'
)
/*طريقة اخرى */
SELECT * FROM swimming_worldcup
MATCH_RECOGNIZE
(
order by year
all ROWs PER MATCH
PATTERN (fr{2} )
DEFINE fr AS winner_country = 'France'
)
--more clear
SELECT matchv, year ,winner_country ,org_country,c1
FROM swimming_worldcup
MATCH_RECOGNIZE
(
order by year
measures
match_number() matchv,
classifier () c1
all ROWs PER MATCH
PATTERN (fr{2} )
DEFINE fr AS winner_country = 'France'
)
/* السجلات التي فازت فيها فرنسا مرتين متتالتين او اكثر*/
SELECT matchv, year ,winner_country ,org_country
FROM swimming_worldcup
MATCH_RECOGNIZE
(
order by year
measures
match_number() matchv
all ROWs PER MATCH
PATTERN (fr{2,} )
DEFINE fr AS winner_country = 'France'
)
/* سجلات الدول التي فازت في البطولة مرتين على التوالي فاكثر*/
SELECT matchv, year ,winner_country ,org_country,c1
FROM swimming_worldcup
MATCH_RECOGNIZE
(
order by year
measures
match_number() matchv,
classifier () c1
all ROWs PER MATCH
PATTERN (x y{1,} )
DEFINE x as 1=1,
y as winner_country =prev(winner_country)
)
/* السجلات التي فازت فيها فرنسا و لحقتها مباشرة ايطاليا*/
SELECT matchv, year ,winner_country ,org_country,c1
FROM swimming_worldcup
MATCH_RECOGNIZE
(
order by year
measures
match_number() matchv,
classifier () c1
all ROWs PER MATCH
PATTERN (x y )
DEFINE x as winner_country ='France',
y as winner_country ='ITALY'
)