Как получить уникальное количество пользователей для пользовательского события Firebase с применением нескольких измерений? - PullRequest
0 голосов
/ 15 мая 2018

В данный момент я пытаюсь подсчитать уникальных пользователей для моих пользовательских событий Firebase в BigQuery Несмотря на то, что мне удалось получить агрегированные цифры с помощью функции APPROX_COUNT_DISTINCT, я все еще застрял, чтобы получить правильный (уникальный) счет при ВЫБОРЕ и добавлении в таблицу ряда различных измерений.

следующий ресурс об использовании HLL_COUNT.INIT приблизил меня на шаг, но я не понял, как использовать функцию HLL_COUNT.MERGE в той же таблице, чтобы я мог получить событие + уникальное количество пользователей с применением фильтров в datastudio

enter image description here

Запрос, который я использовал до сих пор:

SELECT
 (SELECT x.date) AS event_date, 
 (SELECT x.name) AS name,
 (SELECT params.value.string_value FROM x.params WHERE params.key = 'grade') AS vl_grades,
 user_dim.geo_info.region as user_region,
  user_dim.geo_info.city as user_city,
  user_dim.device_info.user_default_language as user_language,
   (SELECT user_prop.key) AS user_prop_key,
   (SELECT user_prop.value.value.string_value) AS user_prop_string_value,
    COUNTIF(user_prop.key = "first_open_time") as event_count ,
    APPROX_COUNT_DISTINCT(user_dim.app_info.app_instance_id) as unique_user,
    HLL_COUNT.INIT(user_dim.app_info.app_instance_id) as sketch
FROM `project.info_project_TOTAL.TOTAL_results_jobs` ,
UNNEST (user_dim.user_properties) AS user_prop,
UNNEST(event_dim) AS x
WHERE x.name = 'Zlag_Click'

GROUP BY date,user_prop_key,user_prop_string_value,name,fr_grades,vl_grades,style,item_category,indoor_outdoor,boulder_route,item_name,user_dim.geo_info.country,user_dim.app_info.app_platform,user_dim.geo_info.region,user_dim.geo_info.city,user_dim.device_info.user_default_language,location

ORDER BY event_count desc

Есть ли у кого-нибудь идеи о том, как я могу добраться до того момента, когда таблица позволяет мне отвечать на такие вопросы, как - Сколько уникальных пользователей из Германии запустили событие за последние x дней? - Сколько уникальных пользователей запустили событие с уровнем сложности 5 за последние x дней? - Сколько уникальных пользователей запрашивали следующие ресурсы за последние x дней?

Спасибо

1 Ответ

0 голосов
/ 15 мая 2018

Пусть project.table_results будет таблицей, в которую вы сохранили результаты запроса.Поскольку я не вижу столбцы, соответствующие всем вопросам, на которые вы хотите ответить, я собираюсь сделать некоторые предположения о столбцах, которые вы можете сделать доступными.

Чтобы подсчитать количество пользователей, которые сработалисчетчик событий за последние 5 дней:

SELECT HLL_COUNT.MERGE(sketch) approx_cnt
FROM `project.table_results`
WHERE date >= DATE_SUB(CURRENT_DATE(), INTERVAL 5 DAY)
AND event_count > 0

Если есть поле уровня сложности;event_diff_level, добавьте

AND event_diff_level == 5

Чтобы получить количество уникальных пользователей, запрашивающих определенный ресурс, добавьте

AND <resource_column_name> == <resource>

. Кроме того, вам не нужно делать (SELECT x.<struct_field>) as <struct_field>.просто x.<struct_field> as <struct_field> должно работать.Надеюсь, это поможет.

...