Использование LAG / LEAD для нахождения пиков в данных дает десятилетние изменения (т.е. 9, 99, 999), а также правильные пики - PullRequest
1 голос
/ 30 мая 2019

Данные в базе данных собираются раз в минуту. Weld_Minutes будет увеличиваться до сброса в конце смены или смены продукта. Код находит пик Weld_Minutes. К сожалению, он видит переход от 9 до 10 минут в виде пика, а также от 99 до 100 минут. Я не знаю, почему. Также я нуб.

        select
                case when pt = 1 then DateInserted end as Day_and_Time,
        case when pt = 1 then Weld_Time end as Weld_Minutes,
        case when pt = 1 then Ft_Ran end as Feet_Ran
from (
      select *, case
                 when DateInserted BETWEEN '2019-05-19 06:00:00' AND '2019-05-21 06:10:00'
              and lag(Weld_Time) over(order by DateInserted) <= Weld_Time 
                  and lead(Weld_Time) over(order by DateInserted) < Weld_Time then 1 -- peak
            end as pt
      from mill_30
     ) sq
where pt is not null;

Результаты запроса:

+-------------------------+--------------+----------+
|      Day_and_Time       | Weld_Minutes | Feet_Ran |
+-------------------------+--------------+----------+
| 2019-05-20 09:40:54.157 |            9 |      208 |
| 2019-05-20 16:51:00.130 |           34 |      595 |
| 2019-05-20 17:48:01.207 |            9 |      148 |
| 2019-05-20 20:48:01.567 |           99 |     1628 |
| 2019-05-21 01:06:04.083 |          308 |     5933 |
| 2019-05-21 01:15:04.263 |            9 |      185 |
| 2019-05-21 01:41:04.217 |           34 |      721 |
+-------------------------+--------------+----------+
The Weld_Minutes 9, 9, 99, and 9 are not peaks.  34, 308, and 34 are the correct peaks.

1 Ответ

0 голосов
/ 31 мая 2019

Ваш вопрос немного сложен для понимания.В данных образца нет столбца weld_time.И нет weld_minutes в вопросе.Они могут быть связаны.

Эта проблема возникает, если сравниваемый столбец представляет собой строку , а не число.Я бы посоветовал вам привести его к числу (целое, числовое, число с плавающей запятой) для сравнения.

Поскольку данные и вопрос не синхронизированы, я описываю решение, а не выписываюкод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...