前回書いた複雑なSQL
をWITH句を用いて効率性を改善!ただ、どのくらい改善したか計測してない。。。
-- WITH句を使うことで効率性改善
WITH my_with AS(
SELECT
article_name,
user_id
FROM
データベース名.mysite_log
WHERE
-- NOT LIKE '%Safari%'を使っていたが遅くなると聞き下記に変更
td_browser != 'Safari'
AND TD_TIME_RANGE(time,
'2016-06-01',
'2016-07-01',
'JST')
GROUP BY
article_name,
user_id
) SELECT
mysite.article_name,
MAX(mysite.my_uu) AS my_uu,
MAX(othersite.other_uu) AS other_uu,
MAX(order.order_uu) AS order_uu
FROM (
SELECT
article_name,
COUNT(DISTINCT user_id) AS my_uu
FROM
my_with
GROUP BY
article_name
) mysite LEFT
JOIN (
SELECT
article_name,
COUNT(DISTINCT imid) AS other_uu
FROM
my_with
WHERE
user_id IN(
SELECT
user_id
FROM
データベース名.log_web_wp
WHERE
TD_TIME_RANGE(time,
'2016-06-01',
'2016-07-01',
'jst')
)
GROUP BY
article_name
) othersite
ON (
mysite.td_title = othersite.td_title
) LEFT
JOIN (
SELECT
article_name,
COUNT(DISTINCT user_id) AS order_uu
FROM
my_with
WHERE
user_id IN(
SELECT
user_id
FROM (
SELECT
user_id,
order_id
FROM
データベース名.userid_orderid_matching
) matching
JOIN (
SELECT
order_id
FROM
データベース名.order_log
WHERE
TD_TIME_RANGE(time,
'2016-06-01',
'2016-07-01',
'jst')
)
) order_log
ON (
matching.order_id = order_log.order_id
)
)
GROUP BY
article_name
) order
ON (
mysite.article_name = order.article_name
)
GROUP BY
mysite.article_name
ORDER BY
mysite_uu DESC
データ分析に関する備忘録。主にR言語を使ったデータの前処理や統計、機械学習などの方法を記録。ビッククエリとトレジャーデータがお気に入り。オフラインとオンラインの連携が最近のマイブーム。
注目の投稿
【kepler.gl】コロナ対策による人流の変化も地図上に可視化(各種メディアで報道)
kepler.glのサイト画面 kepler.glを使ってコロナ対策の効果を分析したところ、テレビ、新聞、ネットのメディアから問い合わせや報道依頼が殺到。今も、土日返上で都内や全国の人流変化を分析しています。この記事では人流変化の可視化に便利なkepler.glにつ...
登録:
コメントの投稿
(
Atom
)
0 件のコメント :
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。