Создать сводную смену со сменой в течение 2 дней - PullRequest
0 голосов
/ 21 января 2020

У меня есть набор данных, как образец ниже. Мне нужно запросить и суммировать количество транзакций за смену. Проблема в том, что цикл смены не совпадает с обычными часами дня.

Например. Смена дня 2020-01-01 начнется в 06:00 2020-01-01 и закончится в 06:00 2020-01-02

Ниже приведен пример набора данных.

| EntityID | TransactionDateTime     |
|----------|-------------------------|
| 1        | 2020-01-01 06:53 |
| 1        | 2020-01-01 06:01 |
| 1        | 2020-01-01 13:05 |
| 1        | 2020-01-02 05:15 |
| 1        | 2020-01-02 06:14 |
| 1        | 2020-01-02 08:35 |
| 1        | 2020-01-02 01:42 |
| 2        | 2020-01-01 05:01 |
| 2        | 2020-01-01 06:01 |
| 2        | 2020-01-01 13:12 |
| 2        | 2020-01-02 05:53 |
| 2        | 2020-01-02 08:24 |

Желаемые результаты должны выглядеть следующим образом.

| EntityID | Shift Date | Num Of Transactions |
|----------|------------|---------------------|
| 1        | 2020-01-01 | 4                   |
| 1        | 2020-01-02 | 3                   |
| 2        | 2019-12-31 | 1                   |
| 2        | 2020-01-01 | 3                   |
| 2        | 2020-01-02 | 1                   |

Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 21 января 2020

Вы можете просто добавить смещение на 6 часов к дате транзакции, а затем агрегировать следующим образом:

select 
    EntityID, 
    cast(dateadd(hour, -6, TransactionDateTime) as date) ShiftDate, 
    count(*) NumOfTransactions
from mytable
group by EntityID, cast(dateadd(hour, -6, TransactionDateTime) as date)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...