0
impression  lineid1 cookieid1
impression  lineid1 cookieid2
impression  lineid1 cookieid3
impression  lineid1 cookieid4
impression  lineid1 cookieid1
impression  lineid2 cookieid1
impression  lineid2 cookieid2
impression  lineid3 cookieid1
impression  lineid1 cookieid1
impression  lineid3 cookieid3
impression  lineid4 cookieid1
impression  lineid4 cookieid2
impression  lineid1 cookieid1
impression  lineid4 cookieid3
impression  lineid4 cookieid4
conversion      cookieid1
conversion      cookieid2
conversion      cookieid3
conversion      cookieid3

すべてのイベント (つまり、インプレッション、コンバージョン) には cookie_id があります。「インプレッション」のすべてのイベントについて、これらの cookie_id がコンバージョンで何回発生したかを知りたいです。

私はこのようなo / pが欲しい:

line_id1    cookie_id1  count=1
line_id1    cookie_id2  count=1
line_id1    cookie_id3  count=1
line_id2    cookie_id1  count=1
line_id2    cookie_id2  count=1

期待される形式でデータを返すハイブ スクリプトを作成する方法

4

1 に答える 1

2

cookieid でテーブル自体に参加します。左の行がインプレッション、右の行がコンバージョンの行をフィルタリングします。カウントを取得するには、lineid と cookieid でグループ化します。

select lineid, cookieid, count(*) as count
from table t1 join table t2
on t1.cookieid = t2.cookieid
where t1.event = 'impression'
and t2.event = 'conversion'
group by lineid, cookieid

このクエリは、変換されない組み合わせを返しません。

それが役立つことを願っています。

于 2013-05-31T10:26:52.190 に答える