У меня есть таблица транзакций клиентов, где каждый предмет, купленный клиентом, хранится в одной строке. Таким образом, для одной транзакции в таблице может быть несколько строк. У меня есть еще один столбец с именем visit_date . Существует столбец категории cal_month_nbr , который варьируется от 1 до 12 в зависимости от того, в каком месяце произошла транзакция.
Данные выглядят как ниже
Id visit_date Cal_month_nbr
---- ------ ------
1 01/01/2020 1
1 01/02/2020 1
1 01/01/2020 1
2 02/01/2020 2
1 02/01/2020 2
1 03/01/2020 3
3 03/01/2020 3
сначала я хочу знаю, сколько раз посещений клиентов в месяц с использованием их date_date, т.е. я хочу ниже выходных данных
id cal_month_nbr visit_per_month
--- --------- ----
1 1 2
1 2 1
1 3 1
2 2 1
3 3 1
и какова средняя частота посещений на идентификаторы ie.
id Avg_freq_per_month
---- -------------
1 1.33
2 1
3 1
Я пытался выполнить запрос ниже, но он учитывает каждый элемент как одну транзакцию
select avg(count_e) as num_visits_per_month,individual_id
from
(
select r.individual_id, cal_month_nbr, count(*) as count_e
from
ww_customer_dl_secure.cust_scan
GROUP by
r.individual_id, cal_month_nbr
order by count_e desc
) as t
group by individual_id
Буду признателен за любую помощь, руководство или предложения