ユーザ毎の閲覧順序・間隔やカテゴリページ毎の閲覧順序・UUを集計
事前にユーザ別のアクセスカテゴリページと期間内初アクセス日を集計したテーブルを構築
--閲覧間隔日数を出す場合は適時クエリを修正
WITH sq_sort_now AS(
SELECT
tracking_data,
node,
min_accesstime
--テーブル名変更
FROM
mezzo_min_access_time
ORDER BY
min_accesstime,
tracking_data
),
sq_sort_next AS(
SELECT
tracking_data,
node,
min_accesstime
--テーブル名変更
FROM
mezzo_min_access_time
),
sq_order AS(
SELECT
sq_sort_now.tracking_data,
sq_sort_now.node AS now_node,
sq_sort_now.min_accesstime AS now_accesstime,
sq_sort_next.node AS next_node,
sq_sort_next.min_accesstime AS next_accesstime
FROM (sq_sort_now)
JOIN
(sq_sort_next)
ON (
sq_sort_now.tracking_data = sq_sort_next.tracking_data
AND sq_sort_now.node != sq_sort_next.node
)
ORDER BY
sq_sort_now.tracking_data
),
sq_order_diff AS(
SELECT
tracking_data,
now_node,
now_accesstime,
next_node,
next_accesstime,
date_diff(
'day',
-- 他にも minute, hour, week, monthなども指定できる
CAST(
now_accesstime AS TIMESTAMP
),
CAST(
next_accesstime AS TIMESTAMP
)
) AS time_diff
FROM
sq_order
WHERE
date_diff(
'day',
-- 他にも minute, hour, week, monthなども指定できる
CAST(
now_accesstime AS TIMESTAMP
),
CAST(
next_accesstime AS TIMESTAMP
)
)>= 0
ORDER BY
tracking_data
),
sq_uu AS(
--閲覧間隔日数を含むデータ
--ここのデータを出したい場合は本クエリを最終結果とする
SELECT
now_node,
next_node,
time_diff,
COUNT(DISTINCT tracking_data) AS uu
FROM (sq_order_diff)
GROUP BY
now_node,
next_node,
time_diff
ORDER BY
now_node,
next_node,
time_diff
)
--順序のみ出す ネットワーク作図用データ
SELECT
now_node,
next_node,
sum(uu) sum_uu
FROM
sq_uu
WHERE
uu > 10
GROUP BY
now_node,
next_node
ORDER BY
now_node,
next_node
データ分析に関する備忘録。主にR言語を使ったデータの前処理や統計、機械学習などの方法を記録。ビッククエリとトレジャーデータがお気に入り。オフラインとオンラインの連携が最近のマイブーム。
注目の投稿
【kepler.gl】コロナ対策による人流の変化も地図上に可視化(各種メディアで報道)
kepler.glのサイト画面 kepler.glを使ってコロナ対策の効果を分析したところ、テレビ、新聞、ネットのメディアから問い合わせや報道依頼が殺到。今も、土日返上で都内や全国の人流変化を分析しています。この記事では人流変化の可視化に便利なkepler.glにつ...
登録:
コメントの投稿
(
Atom
)
0 件のコメント :
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。