Записи запросов, которые происходят в течение промежутка времени - PullRequest
1 голос
/ 26 апреля 2020

Я новичок в SQL и мне нужна помощь с запросом, который будет определять каждый [1] день, [2] автопроизводителя и [3] количество положительных результатов испытаний для автомобилей, которые имеют по крайней мере один положительный результат теста в течение любого 15-минутного окна в данный день.

Данные выглядят следующим образом:

date (11/12/2018)
time (8:21 AM)
car_marker (Honda, Ford, Toyota)
test_result (positive, negative)

Мой желаемый результат будет выглядеть следующим образом:

11/14/2018, Honda, 3 positives
12/03/2018, Ford, 5 positives

Я запрашиваю это в MySQL. Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 26 апреля 2020

На основании ваших комментариев вы можете использовать lag():

select date, car_maker, count(*)
from (select t*, lag(time) over (partition by car_maker, date order by time) as prev_time
      from t
      where test_result = 'positive'
     ) t
where prev_time > time - interval 15 minute
group by date, car_maker;
...