Как получить общее количество объявлений, кликов и просмотров по рефереру - PullRequest
0 голосов
/ 15 октября 2019

У меня есть следующий запрос:

 select AD_ID,to_char(adate,'YYYY-MM-DD') DT,upper(referrer) REFERRER, 'NOT 
 TRACKED' SOURCE, sum(views) VIEWS, sum(clicks) CLICKS
 from (
       select ad_id,adate,referrer,case f when 'Y' then hits else 0 end 
       clicks,case f when 'N' then hits else 0 end views
       from advert_view_hits
       where
       adate <= to_date('2019-10-15','YYYY-MM-DD') AND adate >= 
       to_date('2010-10-14','YYYY-MM-DD')
       and ad_id in
       (
         select ad_id from advertisements where acc_id=200830 and status in ('P','C')
       )
       )
 group by ad_id,adate,referrer

Он производит и выводит, как показано ниже:

AD_ID,DT,REFERRER,SOURCE,VIEWS,CLICKS
1352824,2018-03-14,CORBIN & KING ,NOT TRACKED,2,1
1352824,2018-03-15,CORBIN & KING ,NOT TRACKED,6,0
1352824,2018-03-27,CORBIN & KING ,NOT TRACKED,11,1
1353137,2018-03-28,CORBIN & KING ,NOT TRACKED,1,0
1353137,2018-03-29,SEND TO FRIEND,NOT TRACKED,5,5
1353494,2018-04-19,COCKTAIL BARTENER,NOT TRACKED,1,0

Но я хочу произвести вывод, например:

Referrer,          Adverts, Views,  Clicks
CORBIN & KING,     4,      20,     2
COCKTAIL BARTENER, 1,    1,      0
SEND TO FRIEND     1     5       5

В целом общее количество объявлений, просмотров и кликов по рефералу. Я не уверен, как это сделать с оракулом.

Ответы [ 2 ]

1 голос
/ 15 октября 2019

Ваш запрос кажется таким сложным. Кажется, вам нужна логика, подобная этой:

select referrer,
       sum(case f when 'Y' then hits else 0 end) as clicks,
       sum(case f when 'N' then hits else 0 end) as views
from advert_view_hits
where adate <= date '2019-10-15' and
      adate >= date '2010-10-14' and
      ad_id in (select ad_id
                from advertisements
                where acc_id = 200830 and status in ('P', 'C')
               )
group by referrer;

Это не соответствует вашим точным результатам, потому что вы не объяснили, как их рассчитать. И расчет не очевиден из приведенных данных.

Столбец adverts выглядит следующим образом:

count(distinct ad_id || trunc(adate))
0 голосов
/ 15 октября 2019

Попробуйте, изменив разделение по группам. Внутренний выбор тот же:

select upper(referrer) REFERRER, 
       count(*) ADVERTS, 
       sum(views) VIEWS, 
       sum(clicks) CLICKS
from (
       select ad_id,adate,referrer,case f when 'Y' then hits else 0 end 
       clicks,case f when 'N' then hits else 0 end views
       from advert_view_hits
       where
       adate <= to_date('2019-10-15','YYYY-MM-DD') AND adate >= 
       to_date('2010-10-14','YYYY-MM-DD')
       and ad_id in
       (
         select ad_id from advertisements where acc_id=200830 and status in ('P','C')
       )
      )
 group by referrer
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...