0
我希望爲Google Analytics着陸頁定義一個視圖。我試圖通過保存以下查詢作爲視圖設置此:限制在兩個日期分區之間進行選擇的視圖
SELECT
date,
fullVisitorId AS fv,
visitID AS v,
h.page.pagePath AS landing_page
FROM
`project-id.dataset.ga_sessions_*`, UNNEST(hits) AS h
WHERE
hitNumber = 1
在這種加入到這一觀點的疑問我打算將它們限制在兩者之間的日期分區,就像這樣:
SELECT
sessions.date,
fullVisitorId AS fv,
visitId AS v,
landing_page
FROM `project-id.dataset.ga_sessions_*` AS sessions, UNNEST(hits) AS h
JOIN `project-id.dataset.landing_pages` AS landing_pages
ON landing_pages.fv = sessions.fullVisitorId
AND landing_pages.date = sessions.date
AND landing_pages.v = sessions.visitId
WHERE
_TABLE_SUFFIX BETWEEN '20170108' AND '20170108'
這似乎仍然選擇大容量的數據~5GB,而不是預計將有一天的〜60MB。
如何重新編寫視圖,以便它只選擇由消費查詢定義的相關日期分區?
由於埃利奧特,這並獲得成功。有沒有辦法避免指定「WHERE sessions_date ='20170108'?我在消費查詢中嘗試了LEFT JOIN,但仍然選擇了大量的數據。感覺應該有一種方式,但我想所有人都說並且儘量減少查詢的數量 – goose
「LEFT JOIN」的問題是,如果視圖在右邊,'sessions_date'可能最終爲空(如果一個鍵不能爲空不存在於視圖中),所以過濾器不能像通常那樣被「推下」。避免這種情況的一種方法是使用子查詢,例如'LEFT JOIN(SELECT ... FROM my_view WHERE sessions_date = .. )'。 –