Firebase BigQuery Active User и несоответствие интерфейса - PullRequest
0 голосов
/ 07 февраля 2019

У меня 1512 активных пользователей в панели инструментов Firebase за этот диапазон дат с 18 декабря 2018 по 21 декабря 2018 года.

Я выполнил этот запрос и получил следующее:

SELECT
 COUNT(DISTINCT user_pseudo_id ) as active_user_count
FROM
  -- PLEASE REPLACE WITH YOUR TABLE NAME.
  `xxxxxx-xxxxx.analytics_000000000.events_*`
WHERE
  event_name = 'user_engagement'
  AND event_timestamp >
      UNIX_MICROS(TIMESTAMP_SUB(CURRENT_TIMESTAMP, INTERVAL 200 DAY))
  -- PLEASE REPLACE WITH YOUR DESIRED DATE RANGE.
  AND _TABLE_SUFFIX BETWEEN '20181218' AND '20181221'

Я получаю 1326 активных пользователей, которые значительно отключены от моей панели Firebase.

Но когда я включаю event_date, я, кажется, получаю более точный счет, как показано ниже:

SELECT
SUM(active_user_count)
FROM(

SELECT
 COUNT(DISTINCT user_pseudo_id ) as active_user_count,
 event_date
FROM
  -- PLEASE REPLACE WITH YOUR TABLE NAME.
  `xxxxxxx-xxxxxx.analytics_xxxx.events_*`
WHERE
  event_name = 'user_engagement'
  -- Pick events in the last N = 20 days.
  AND event_timestamp >
      UNIX_MICROS(TIMESTAMP_SUB(CURRENT_TIMESTAMP, INTERVAL 200 DAY))
  -- PLEASE REPLACE WITH YOUR DESIRED DATE RANGE.
  AND _TABLE_SUFFIX BETWEEN '20181218' AND '20181221'
  GROUP BY event_date)

Мой счетчик пользователей - 1497. Я не понимаю, почему, если я группирую по дате и суммеЯ получаю более точное число.

Должен ли первый запрос получить тот же номер, что и 2-й запрос?

Спасибо,

1 Ответ

0 голосов
/ 08 февраля 2019

Я не понимаю, почему, если я группирую по дате и сумме, я получаю более точное число.
Должен ли первый запрос получить тот же номер, что и второй запрос?

Короткий ответ: нет, не должно !!

Первый запрос - он рассчитывает количество отдельных пользователей / учетных записей за весь период.Таким образом, если один и тот же пользователь / учетная запись был активен более одного дня - этот пользователь / учетная запись будет учитываться только один раз!

Второй запрос работает совершенно по-другому - сначала он вычисляет активного пользователя для каждого дня - таким образом, один и тот же пользователь (в приведенном выше примере) будет подсчитываться отдельно для каждого дня - так что, когда, наконец, все эти ежедневные значения будут равны SUM 'ed - этот пользователь считается столько же раз, сколько и сколько дней он был активен - таким образом, разница

Надеюсь, что это поможет вам в дальнейшем устранении неполадок

Тем временем я бы порассуждал об определенииактивных пользователей в Firebase Dashboard - похоже, они используют логику вашего второго запроса (против первого) - но это мое дикое предположение

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