Как установить DATEFIRST равным среде в Amazon Redshift - PullRequest
0 голосов
/ 19 февраля 2020

В моей таблице DimDate день недели начинается с «среда» и заканчивается «вторник». Теперь мне нужно сгенерировать номера недель соответственно. Для этого мне нужно сначала установить дату на среду? Существуют ли другие возможности для достижения нижеуказанного требования

Пожалуйста, найдите ниже примерные данные, которые мне нужно заполнить.

enter image description here

По состоянию на 2017-01-01 день начинается с воскресенья, которое по умолчанию является datefirst, но в моем случае мне нужно указать номер дня, для которого 2017-01-01 номер дня = 4 и неделя = 1, 2017-01-02 номер дня = 5, 2017-01-01 номер дня = 6 и неделя = 1 в следующую среду 01-04-2017 - это daynumebr = 0, а неделя = 2 и т. д. ......

1 Ответ

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

Это установит ваш номер дня равным 0 для среды и оканчивающимся на 6 для вторника:

case when date_part(dw,source_date)-3<0 
     then date_part(dw,source_date)+4 
     else date_part(dw,source_date)-3 
end as daynumber

Аналогично, вы можете написать еще один оператор case для оценки номера недели, хотя он будет более сложным, чем этот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...