Я пытаюсь преобразовать журналы в среднее количество сеансов в день недели или в час.
У меня есть таблица, похожая на
user_id | session_id | session_start_time | fleet_name
и я хочу, чтобы таблица выглядела следующим образом
флот | день недели / час | avg (count (session_id)
Я используюbigquery o сделать это, чтобы отправить данные в datastudio. Целью было бы показать количество соединений в среднем по данному флоту в понедельник или в 8 часов утра
SELECT fleet_name,extract(dayofweek from date) as day, avg(count_user)
FROM( SELECT extract(date from session_start_time) as date,
COUNT(user_id)as count_user,fleet_name
FROM `gbl-ist-ve-aws-appstream-costs.appstream_dataset.log_sessions`
group by date,fleet_name)
group by fleet_name, day
проблема, с которой я столкнулсяКод ниже состоит в том, что он игнорирует день / час, когда никто не соединяется, поэтому среднее значение неверно. Я видел некоторые ответы по аналогичной проблеме с внутренним объединением, но у меня нет другой таблицы с днем / часом для каждого парка, если ясоздать один. Я также думал о делении общего количества на количество дней недели или часов (количество дней в году) между двумя датами, но это может быть извращенным способом продолжить ...
Любая помощь будет ценной