average_monthly_merchants для каждой платформы и listings_group - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь получить 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  



...