Treasure Dataで特定のセグメントのユーザーのうち、特定の行動をとったUU数をdailyで取得するクエリ
1925 ワード
この記事の目的
特定のセグメントのユーザーのうち、ある特定の行動を行うUU数をdailyで取得するためのクエリのサンプルです。
JOIN ON
を使い、2つのtableをつなぐのがポイントになります
Table 構造
user( 特定のセグメント )
time | id | path |
---|---|---|
Oct 07, 2015 @ 02:39:21 AM | 1 | |
Oct 07, 2015 @ 02:19:17 AM | 2 | |
Oct 07, 2015 @ 01:18:47 AM | 3 |
follow( 特定の行動 )
time | uid | friend_id |
---|---|---|
Oct 02, 2015 @ 02:35:28 AM | 1 | 2 |
Oct 02, 2015 @ 02:08:27 AM | 2 | 3 |
Oct 02, 2015 @ 01:56:15 AM | 4 | 1 |
実際のクエリ
HiveQl
SELECT
d,
COUNT(DISTINCT you) AS NUMBER
FROM (
SELECT
d,
you,
COUNT(you)
FROM
(
SELECT
td_time_format(users.time,
'yyyy-MM-dd',
'Asia/Tokyo') AS d,
users.id AS you,
follow.friend_id AS they
FROM
users
JOIN
follow
ON (
users.id = follow.uid
)
WHERE
td_time_range(users.time,
td_time_add(td_scheduled_time(),
'-1d'),
td_scheduled_time())
) t1
GROUP BY
d,
you
HAVING
COUNT(you)> 1
) t2
GROUP BY
d
ORDER BY
d ASC
HiveQl
SELECT
d,
COUNT(DISTINCT you) AS NUMBER
FROM (
SELECT
d,
you,
COUNT(you)
FROM
(
SELECT
td_time_format(users.time,
'yyyy-MM-dd',
'Asia/Tokyo') AS d,
users.id AS you,
follow.friend_id AS they
FROM
users
JOIN
follow
ON (
users.id = follow.uid
)
WHERE
td_time_range(users.time,
td_time_add(td_scheduled_time(),
'-1d'),
td_scheduled_time())
) t1
GROUP BY
d,
you
HAVING
COUNT(you)> 1
) t2
GROUP BY
d
ORDER BY
d ASC
Author And Source
この問題について(Treasure Dataで特定のセグメントのユーザーのうち、特定の行動をとったUU数をdailyで取得するクエリ), 我々は、より多くの情報をここで見つけました https://qiita.com/abe-perorist/items/2515e86f890293d658dc著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .