Этот ответ для MySQL 8.
Требуемая информация является самой последней cum_distance
для каждого пользователя с reset_event = 1
. Вы используете MySQL 8, так что вы можете использовать оконные функции.
Вот один метод:
select r.*,
(cum_distance - coalesce(preceding_reset_cum_distance, 0)) as runner_dist_since_reset
from (select r.*,
min(cum_distance) over (partition by runner order by preceding_reset) as preceding_reset_cum_distance
from (select r.*,
max(case when reset_event = 1 then start_date end) over
(partition by runner
order by start_date
rows between unbounded preceding and 1 preceding
) as preceding_reset
from runners r
) r
) r;
Я не думаю, что Вам нужен линт для crontab. Существует 5 полей, которые являются пространством, разделенным затем пространство затем, команда для выполнения и ее args разрушает строку.
Кроме того, на Ubuntu, по крайней мере, crontab не позволит Вам сохранить файл задницы. Я просто попробовал несколько вещей, и это блевало на всех них. Я предполагаю, что означает, что crontab является своим собственным 'линтом для крона'.
Это могло бы быть немного выключено, но простой способ будет состоять в том, чтобы просто загрузить его графическим crontab редактором как kcron или gcrontab. Если необходимо назвать его в сценарии, этот вопрос о том, как сделать это в php.