Вычтите дни из даты, а затем округлите результат до даты конца недели в Redshift - PullRequest
0 голосов
/ 23 января 2019

Извините, если это звучит немного странно ...

Я работаю с таблицей, которая агрегирует данные на недельном уровне, с воскресенья по субботу.В столбце даты хранится дата конца недели;например, последняя неделя была бы датой окончания недели 2019-01-19.

Я пытаюсь получить итоговые записи с даты окончания прошлой недели 2019-01-19, вычесть 360 дней,Однако, если я вычту 360 дней, а дата не выпадает на субботу, записи будут игнорироваться.

Как можно вычесть 360 дней из 2019-01-19 и убедиться, что день, на который выпадает расчеттакже округляет до конца даты этой недели?

2019-01-19 - 360 = 2018-01-24, что является средой.Я хочу, чтобы он округлился до субботы той недели, 2018-01-27

Ответы [ 2 ]

0 голосов
/ 23 января 2019

В стандартном SQL Google BigQuery вы можете сделать что-то вроде этого:

SELECT DATE_TRUNC(DATE_ADD(<YOUR_DATE>), INTERVAL -360 DAY), WEEK(SATURDAY))
0 голосов
/ 23 января 2019

Как то так должно работать Я не проверял, но вы видите идею и можете изменить в соответствии с вашими потребностями

select (date_trunc('week','2019-01-19'::date) - (interval '1 week' * floor(360/7))) + interval '6 days';

Если оно закрыто и вы не видите, что изменить, чтобы оно заработало - оставьте комментарий.

...