BigQuery выбирает данные за неделю и за неделю - PullRequest
0 голосов
/ 04 сентября 2018

Предположим, у меня есть запрос:

SELECT ga_channelGrouping, ga_sourceMedium, SUM(ga_sessionDuration)/SUM(ga_sessions) as avg_sessionDuration 

FROM database.table 

group by ga_channelGrouping, ga_sourceMedium

.

Как мне выбрать на прошлой неделе и данные на этой неделе из BigQuery, если у меня есть столбец DATE, который выглядит следующим образом 2018-06-19 11:00:00 UTC.

1 Ответ

0 голосов
/ 04 сентября 2018

DATE_TRUNC - это полезная функция для определения начала недели, а DATE_SUB возвращает вас на последнюю неделю

date_trunc

DATE_SUB

SELECT if(date(date) >= DATE_TRUNC(current_date(), WEEK(MONDAY)),"This Week","Last Week") weekPeriod, 
 ga_channelGrouping, 
 ga_sourceMedium, 
 SUM(ga_sessionDuration)/SUM(ga_sessions) as avg_sessionDuration 

FROM database.table 
WHERE date(date) > = DATE_SUB(DATE_TRUNC(current_date(), WEEK(MONDAY)), INTERVAL 1 WEEK)
group by weekPeriod, ga_channelGrouping, ga_sourceMedium

Если ваша неделя начинается в воскресенье, просто измените НЕДЕЛЯ (ПОНЕДЕЛЬНИК) на НЕДЕЛЯ (ВОСКРЕСЕНЬЕ)

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