Я провожу исследование активности подписчиков на сайте. В частности, я хотел бы видеть среднее количество кликов на одного подписчика в день в 2018 году. К сожалению, предоставленная мне таблица данных не учитывает дни, когда подписчик вообще не взаимодействует с веб-сайтом, но мне нужно нулевое значение. дней с учетом.
Если я начну свой запрос с чего-то вроде:
SELECT SubscriberID, date_trunc('Day', Date_of_Activity), count(*) as Clicks
FROM WSD.Clicks
WHERE Date_Of_Activity between date('2018-01-01') and date('2019-01-01')
GROUP BY 1,2
... у каждого подписчика будет запись на определенный календарный день, только если в этот день у него был подтвержденный клик; в противном случае ни одна строка не была бы сгенерирована в исходных данных. Это вызывает инфляцию в среднем, потому что она учитывает подводные лодки, только когда они активны; человек, использующий веб-сайт один день в году с двумя щелчками, теперь равен человеку, использующему его 300 дней в году, дважды щелкающим каждый день. Как можно сделать так, чтобы запрос объявлял календарный день для каждого подписчика и назначал значение «0» в тех случаях, когда у него фактически не было зарегистрированной активности?
Для справки, эта таблица имеет только несколько столбцов:
SubscriberID (строка), Date_of_Activity (метка времени), Type_of_Activity
(Строка)
Я запрашиваю данные в Афине (AWS).