Я пытаюсь получить average_monthly_merchants для каждой платформы и listings_group :
- Я могу подсчитать ежемесячные средние списки для каждого merchant_id и назначьте его listings_group
- Но - у меня возникают проблемы с получением average_monthly_merchants для каждой платформы и listings_group (т.е. Я изо всех сил пытаюсь подключить df2 и df3 , чтобы получить те же столбцы, что и в выходной таблице)
Основная таблица
Date merchant_id platform listing_id
2019-01-01 1 A 34942
2019-01-01 1 B 59393
2019-01-01 2 A 93923
2019-01-01 2 B 24566
2019-01-02 3 A 48524
2019-01-02 3 B 48524
Month platform listings_group average_monthly_merchants
1 A 1 342
1 A 2 21
1 A 3 3
1 B 1 245
1 B 2 45
1 B 3 7
with df1 as(
select date
,merchant_id
,platform
,count(distinct(listing_id)) as count_listings
from main_table
group by 1,2,3),
df2 as(
select month
,platform
,merchant_id
, case when average_listings <100 then 1
when average_listings >100 and average_listings <200 then 2
when average_listings >200 then 3
else null end as listings_group
from(
select date_trunc('month',date) as month
,merchant_id
,avg(count_listings ) as average_listings
from df1
group by 1,2),
--------
df3 as(
select date_trunc('month',date) as month
,avg(distinct_merchant_id) as average_monthly_merchants
from(
select date
,platform
,count(distinct(merchant_id)) as distinct_merchant_id
from df1
group by 1,2)
group by 1