Группировка начальных дат - PullRequest
       18

Группировка начальных дат

0 голосов
/ 05 февраля 2020

Пример того, что я пытаюсь сделать:

У меня 10 сотрудников. Все они начинались в разные дни в течение года. Каждому платят раз в неделю. Я хочу запросить их первую зарплату и позвонить в ту неделю 1 для всех сотрудников. Тогда каждая последующая зарплата будет 2 ... 3 ... через 13. Итак, в основном я хочу посмотреть, как каждая из первых 13 недель на работе выглядела сложенной друг против друга. Я ожидаю, что мой вывод будет выглядеть примерно так:

enter image description here

1 Ответ

1 голос
/ 05 февраля 2020

Вы можете использовать row_number():

select
    row_number() over(partition by EmployeeId order by PaycheckDate) week,
    EmployeeId,
    PaycheckDate,
    Amount
from mytable
order by week, EmployeeId

Если вы хотите только первые 13 недель на сотрудника, то:

select *
from (
    select
        row_number() over(partition by EmployeeId order by PaycheckDate) week,
        EmployeeId,
        PaycheckDate,
        Amount
    from mytable
) t
where week <= 13
order by week, EmployeeId
...