я действительно думаю, что уже ответил на ваш первоначальный вопрос: о) если у вас есть новый - пожалуйста, напишите как новый вопрос. Тем временем, как обычно, подумайте о голосовании и принятии (если вы принимаете) - я считаю, что вы должны: o)

ел бы создать двадинамический еженедельник Отчеты BigQuery Firebase, отражающие последние 12 недель данных для:

События в неделюDISTINCT Пользователи, которые вызвали события в неделю

Вдохновение для этих отчетов пришло отTableau-отчет Я видел онлайн:

Я пытаюсь создать динамические метки времени, чтобы вытащить значения1.счет события.имя а также2. различить user_dim.app_info.app_instance_id.

Моя первая итерация:

SELECT  event.name as event_name, 
COUNT(CASE WHEN _TABLE_SUFFIX >= '20170724' AND _TABLE_SUFFIX < '20170731' THEN event.name END) AS W1,  
COUNT(CASE WHEN _TABLE_SUFFIX >= '20170731' AND _TABLE_SUFFIX < '20170807' THEN event.name END) AS W2,  
COUNT(CASE WHEN _TABLE_SUFFIX >= '20170807' AND _TABLE_SUFFIX < '20170814' THEN event.name END) AS W3,  
COUNT(CASE WHEN _TABLE_SUFFIX >= '20170814' AND _TABLE_SUFFIX < '20170821' THEN event.name END) AS W4,  
COUNT(CASE WHEN _TABLE_SUFFIX >= '20170821' AND _TABLE_SUFFIX < '20170828' THEN event.name END) AS W5,  
COUNT(CASE WHEN _TABLE_SUFFIX >= '20170828' AND _TABLE_SUFFIX < '20170904' THEN event.name END) AS W6,  
COUNT(CASE WHEN _TABLE_SUFFIX >= '20170904' AND _TABLE_SUFFIX < '20170911' THEN event.name END) AS W7,  
COUNT(CASE WHEN _TABLE_SUFFIX >= '20170911' AND _TABLE_SUFFIX < '20170918' THEN event.name END) AS W8,  
COUNT(CASE WHEN _TABLE_SUFFIX >= '20170918' AND _TABLE_SUFFIX < '20170925' THEN event.name END) AS W9,  
COUNT(CASE WHEN _TABLE_SUFFIX >= '20170925' AND _TABLE_SUFFIX < '20171002' THEN event.name END) AS W10,  
COUNT(CASE WHEN _TABLE_SUFFIX >= '20171002' AND _TABLE_SUFFIX < '20171009' THEN event.name END) AS W11,  
COUNT(CASE WHEN _TABLE_SUFFIX >= '20171009' AND _TABLE_SUFFIX < '20171016' THEN event.name END) AS W12  
FROM `<<project-id>>.app_events_*`, UNNEST(event_dim) AS event
WHERE  _TABLE_SUFFIX >= '20170724' AND _TABLE_SUFFIX < '20171016'
GROUP BY event_name
ORDER BY event_name DESC;

Я также поиграл с кодом sudo ниже:

# Enable StandardSQL
SELECT week, event.name as event_name, COUNT(event.name) as event_count
FROM 
(TABLE_DATE_RANGE([firebase-analytics-sample-data:android_dataset.app_events_],DATE_ADD(CURRENT_TIMESTAMP(), -1, 'WEEK'), DATE_ADD(CURRENT_TIMESTAMP(), -1, 'WEEK'))), ....
....
....
(TABLE_DATE_RANGE([firebase-analytics-sample-data:android_dataset.app_events_],DATE_ADD(CURRENT_TIMESTAMP(), -12, 'WEEK'), DATE_ADD(CURRENT_TIMESTAMP(), -12, 'WEEK'))),
UNNEST(event_dim) as event
GROUP BY event_name
ORDER BY week DESC
LIMIT 12;

Примечание: таблица подстановочных знаков не поддерживает представления. Запрос возвращает ошибку, если таблица подстановочных знаков совпадает с какими-либо представлениями в наборе данных. В настоящее время кэшированные результаты не поддерживаются для запросов к нескольким таблицам, использующим функцию подстановки (даже если установлен флажок «Использовать кэшированные результаты»). Если вы выполняете один и тот же шаблонный запрос несколько раз, вам выставляется счет за каждый запрос. Таблицы с подстановочными знаками поддерживают только собственное хранилище BigQuery. Вы не можете использовать подстановочные знаки при запросе внешней таблицы или представления (источник).

Чтобы обобщить:

Было бы намного быстрее, если бы мне не приходилось вручную вводить поля даты каждую неделю, но скрипт «знает» текущийиндекс недели мы находимся и обновляем данные за последние 12 недель.

аппендикс

30 неделя 24 июля 2017 г. 30 июля 2017 г. 20170724 20170730Неделя 31 июля 31, 2017 6 августа 2017 20170731 20170806Неделя 32 7 августа 2017 г. 13 августа 2017 г. 20170807 20170813Неделя 33 14 августа 2017 г. 20 августа 2017 г. 20170814 20170820Неделя 34 21 августа 2017 г. 27 августа 2017 г. 20170821 20170827Неделя 35 28 августа 2017 г. 3 сентября 2017 г. 20170828 20170903Неделя 36 4 сентября 2017 г. 10 сентября 2017 г. 20170904 20170910Неделя 37 сентября 11, 2017 17 сентября 2017 20170911 20170917Неделя 38 18 сентября 2017 г. 24 сентября 2017 г. 20170918 20170924Неделя 39 25 сентября 2017 г. 1 октября 2017 г. 20170925 20171001Неделя 40 2 октября 2017 г. 8 октября 2017 г. 20171002 20171008Неделя 41 9 октября 2017 г. 15 октября 2017 г. 20171009 20171015

Ответы на вопрос(1)

Ваш ответ на вопрос