Атрибуция последнего клика / наибольшее n на пользователя в SQL - PullRequest
0 голосов
/ 14 октября 2019

Я хотел бы выбрать последнюю кампанию, которую пользователь щелкнул в моем наборе данных, и вернуть таблицу с названием последней нажатой кампании и датой для каждого анонимного идентификатора.

Это то, что я написал

select  anon,
           source,
           medium,
           campaign,
           max(ts) as ts
           from attribution
group by 1,2,3,4

Этот код, похоже, возвращает дату последнего клика, но в тех случаях, когда пользователь щелкнул две кампании, он вернет обе кампании с последней датой, добавленной в столбец даты.

TS вэтот сценарий относится к метке времени

1 Ответ

0 голосов
/ 14 октября 2019

Вы можете использовать row_number():

select *
from (
    select
        anon,
        source,
        medium,
        campaign,
        ts,
        row_number() over(partition by anon order by ts desc) rn
    from attribution
) where rn = 1

Предполагается, что anom - это столбец, содержащий имя пользователя - если это не так, измените его на соответствующий столбец в * 1006. * пункт.

...