CREATE TABLE ticker (SYMBOL VARCHAR2(10), tstamp DATE, price NUMBER)
Table created.
CREATE TABLE ticker (SYMBOL VARCHAR2(10), tstamp DATE, price NUMBER)
ORA-00955: name is already used by an existing objectMore Details: https://docs.oracle.com/error-help/db/ora-00955
INSERT INTO Ticker VALUES('ACME', '01-Apr-11', 12)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '02-Apr-11', 17)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '03-Apr-11', 19)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '04-Apr-11', 21)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '05-Apr-11', 25)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '06-Apr-11', 12)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '07-Apr-11', 15)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '08-Apr-11', 20)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '09-Apr-11', 24)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '10-Apr-11', 25)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '11-Apr-11', 19)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '12-Apr-11', 15)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '13-Apr-11', 25)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '14-Apr-11', 25)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '15-Apr-11', 14)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '16-Apr-11', 12)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '17-Apr-11', 14)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '18-Apr-11', 24)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '19-Apr-11', 23)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '20-Apr-11', 22)
1 row(s) inserted.
DROP TABLE ticker
Table dropped.
CREATE TABLE ticker (SYMBOL VARCHAR2(10), tstamp DATE, price NUMBER)
Table created.
INSERT INTO Ticker VALUES('ACME', '01-Apr-11', 12)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '02-Apr-11', 17)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '03-Apr-11', 19)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '04-Apr-11', 21)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '05-Apr-11', 25)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '06-Apr-11', 12)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '07-Apr-11', 15)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '08-Apr-11', 20)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '09-Apr-11', 24)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '10-Apr-11', 25)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '11-Apr-11', 19)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '12-Apr-11', 15)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '13-Apr-11', 25)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '14-Apr-11', 25)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '15-Apr-11', 14)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '16-Apr-11', 12)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '17-Apr-11', 14)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '18-Apr-11', 24)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '19-Apr-11', 23)
1 row(s) inserted.
INSERT INTO Ticker VALUES('ACME', '20-Apr-11', 22)
1 row(s) inserted.
SELECT *
FROM Ticker MATCH_RECOGNIZE (
PARTITION BY symbol
ORDER BY tstamp
MEASURES STRT.tstamp AS start_tstamp,
LAST(DOWN.tstamp) AS bottom_tstamp,
LAST(UP.tstamp) AS end_tstamp
ONE ROW PER MATCH
AFTER MATCH SKIP TO LAST UP
PATTERN (STRT DOWN+ UP+)
DEFINE
DOWN AS DOWN.price < PREV(DOWN.price),
UP AS UP.price > PREV(UP.price) ) MR
WHERE symbol='ACME'
ORDER BY MR.symbol, MR.start_tstamp
| SYMBOL | START_TSTAMP | BOTTOM_TSTAMP | END_TSTAMP | ACME | 05-APR-11 | 06-APR-11 | 10-APR-11 | ACME | 10-APR-11 | 12-APR-11 | 13-APR-11 | ACME | 14-APR-11 | 16-APR-11 | 18-APR-11 |
|---|