Посчитать неделю между датами - PullRequest
2 голосов
/ 01 апреля 2020

Я пытаюсь показать счет за неделю, но я не уверен, как найти неделю, которая не отображается между effdate и expdat. Как показать неделю и количество показанных ниже? Спасибо.

enter image description here

1 Ответ

2 голосов
/ 01 апреля 2020

Вы можете использовать рекурсивный запрос для подсчета недель, а затем объединить его с таблицей

with cte as (
    select min(effweek) week, max(expweek) max_week from mytable
    union all
    select week + 1, max_week from cte where week < max_week
)
select c.week, count(t.id_num) cnt
from cte c
left join mytable t on c.week between t.effweek and t.expweek
group by c.week
order by c.week

(упрощенно) демонстрация в DB Fiddle :

week | cnt
---: | --:
  12 |   2
  13 |   1
  14 |   1
...