У меня есть таблица MYSQL, которая содержит timestamp
и direction
(сигнал покупки / продажи) данных фондового рынка.
Ниже приведен пример выборки данных CREATE
и INSERT
.
Таблица в порядке убывания timestamp
, и таблица усекается и вставляется с 5-минутным интервалом. Я включил поле id
, которое автоинкрементно, поскольку оно может помочь при сравнении первой строки со второй строкой.
Каждый раз, когда меняется направление рынка, я хочу, чтобы был создан текстовый файл. В качестве примера (из данных примера), когда timestamp
было 15:00:00, поскольку это была первая строка, которая была вставлена в таблицу, он должен сгенерировать текстовый файл как SELL.txt. В 15:05:00, поскольку direction
изменился с SELL
на BUY
, он должен сгенерировать текстовый файл как BUY.txt. Поскольку direction
не изменился в 15:10:00 и 15:15:00 по сравнению с предыдущей строкой, текстовый файл генерировать не следует. В 15:20:00, так как direction
изменился с BUY
на SELL
, он должен сгенерировать текстовый файл как SELL.txt. Так как direction
не изменился в 15:25:00 и 15:30:00 по сравнению с предыдущей строкой, текстовый файл генерировать не следует.
В итоге, если значение ячейки первой строки поля direction
не равно значению ячейки второй строки поля direction
, то текстовый файл должен быть сгенерирован на основе значения первой строки поля direction
. Если значение ячейки первой строки поля direction
равно значению ячейки второй строки поля direction
, текстовый файл генерировать не нужно.
Я предполагаю, что это может быть реализовано с использованием хранимых процедур. Тем не менее, я новичок в хранимых процедурах, и я не смог реализовать это до сих пор. Я был бы очень признателен, если кто-то может помочь в этом отношении.
спасибо и всего наилучшего,
CREATE TABLE `tbl` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`timestamp` datetime DEFAULT NULL,
`direction` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
INSERT INTO `market`.`tbl`
(`id`,
`timestamp`,
`direction`)
VALUES
(1,'2020-02-24 15:30:00','BUY'),
(2,'2020-02-24 15:25:00','SELL'),
(3,'2020-02-24 15:20:00','SELL'),
(4,'2020-02-24 15:15:00','BUY'),
(5,'2020-02-24 15:10:00','BUY'),
(6,'2020-02-24 15:05:00','BUY'),
(7,'2020-02-24 15:00:00','SELL');