У меня есть данные транзакции по времени.У него есть несколько рабочих номеров.Иногда номера заданий делятся на две части, между которыми выполняется еще одно задание.Я хотел бы сообщить об этих разделенных заданиях в двух разных строках со своей собственной статистикой.
Я пробовал несколько различных оконных решений, кажется, что FIRST_VALUE()
и LAST_VALUE()
- мои лучшие варианты.Я хотел бы, чтобы время первой и последней транзакции задания было доступно в столбцах, чтобы я мог затем сгруппировать их и показать количество транзакций.
Когда я их использую, хотя я делю работу по заданию, LastKit и FirstKit действуют так, как будто я сделал группу.Я надеюсь сгруппировать, но с заданием разбить его на части.
select FIRST_VALUE(DTIMECRE) OVER(PARTITION BY job ORDER BY dtimecre) AS KitStart,
LAST_VALUE(DTIMECRE) OVER(PARTITION BY job ORDER BY dtimecre
ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS KitEnd,
count(*) as QtyKitted
from transactions
order by dtimecre
KitStart KitEnd Job dtimecre
SystemicLocation
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:00:07 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:00:08 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:00:09 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:00:10 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:00:10 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:00:11 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:00:12 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:00:13 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:00:13 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:00:14 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:00:15 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:00:16 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:00:46 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:00:47 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:00:48 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:00:49 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:00:49 3
5/15/19 11:06:17 5/15/19 11:14:11 979309 5/15/19 11:06:17 3
5/15/19 11:06:17 5/15/19 11:14:11 979309 5/15/19 11:12:16 3
5/15/19 11:06:17 5/15/19 11:14:11 979309 5/15/19 11:12:26 3
5/15/19 11:06:17 5/15/19 11:14:11 979309 5/15/19 11:12:32 3
5/15/19 11:06:17 5/15/19 11:14:11 979309 5/15/19 11:12:39 3
5/15/19 11:06:17 5/15/19 11:14:11 979309 5/15/19 11:12:45 3
5/15/19 11:06:17 5/15/19 11:14:11 979309 5/15/19 11:13:38 3
5/15/19 11:06:17 5/15/19 11:14:11 979309 5/15/19 11:13:45 3
5/15/19 11:06:17 5/15/19 11:14:11 979309 5/15/19 11:13:50 3
5/15/19 11:06:17 5/15/19 11:14:11 979309 5/15/19 11:13:55 3
5/15/19 11:06:17 5/15/19 11:14:11 979309 5/15/19 11:14:00 3
5/15/19 11:06:17 5/15/19 11:14:11 979309 5/15/19 11:14:06 3
5/15/19 11:06:17 5/15/19 11:14:11 979309 5/15/19 11:14:11 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:35:51 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:35:51 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:35:52 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 11:36:23 3
Lots of transactions……
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 15:17:19 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 15:17:19 3
5/15/19 11:00:07 5/15/19 15:17:20 978437 5/15/19 15:17:20 3
Просмотр данных: первый KitStart - 11:00:07, затем выполняется транзакция в11:06:17 когда появится следующая работа (979309).Но это возвращается к 11:00:07, когда работа 978437 начинается снова.Я хотел бы, чтобы это был первый раз в этом блоке комплектации, поэтому 11: 35: 51.
Та же проблема с LAST_VALUE.В первой транзакции это 15:17:20, что является окончанием второго раунда задания 978437. Я хочу, чтобы оно было 11: 00: 49.
Подводя итог, я ищу,это будет выглядеть так:
KitStart KitEnd Job QtyKitted
5/15/19 11:00:07 5/15/19 15:17:20 978437 17
5/15/19 11:06:17 5/15/19 11:14:11 979309 13
5/15/19 11:35:51 5/15/19 15:17:20 978437 1007
Это показывает, что задание 978437 было запущено, запущено 17 единиц, переключено на задание 979309, выполнено 13, затем переключено обратно на 978437 и запущено 1007 единиц.
Кроме того, это мой первый пост по SQL-серверу (и второй по счету), спасибо за то, что согласился с любыми несоответствиями к сообщениям Stackoverflow, у меня, вероятно, есть пара.Спасибо!