Нумерация недель в квартале sql

Поделитесь идеями или опытом подсчета номеров недель в каждом квартале. Считаю в Redshift. Первый номер начинается с первого дня квартала. Второй номер начинается со следующего понедельника. Т.е. первая и последняя недели квартала не всегда семидневные отрезки с понедельника по воскресенье. Я попробовала считать недели между 1 и последним днем каждого квартала:

round((extract('day' from  (date_op - date_trunc('QUARTER',date_op))))/7+1)

Этот подход оказался нерабочим. Со второго квартала недели начинают считаться с воскресенья.

Извлечь нумерацию из нумерации недель года тоже нельзя, т.к. считаю в таком случае просто семидневные отрезки:

DATE_PART(WEEK,date_op))%13 + 1.

По форумам и тут похожих вычислений не нашла. Буду признательна за любую помощь.


Ответы (1 шт):

Автор решения: newman

Мне кажется вы зря отказались от варианта с номером недели. Как мне кажется вот это может быть рабочим вариантом:

SELECT date_part('WEEK', date_op) - date_part('WEEK', date_trunc('QUARTER', date_op)) + 1;

Т.е. мы определяем номер недели для текущей даты, а так же определяем номер недели для начала квартала. И находим разницу между ними.

Для сегоднянего числа выдает 11 - это вроде бы правильно, если я правильно понял условие задачи.

→ Ссылка