【发布时间】:2014-07-13 09:31:33
【问题描述】:
我很难为相当复杂的报告查询构建有效的 BigQuery 案例语句。我使用的数据集已由 Google Analytics 填充。对于这个查询,有很多案例,但这是我正在查看的案例之一:
CASE when previous page="^/XXX/[^/]+/apps/booking/flight/traveler\.aspx" and landing page="^/XXX/[^/]+/default\.aspx" then "Traveler info 2.0"
when previous page="^/web/[^/]+/apps/booking/flight/traveler\.aspx" and landing page="^/web/[^/]+/default\.aspx" then "Traveler info 1.0" when previous
这里注意XXX和web是不同的情况。问题在于,需要确定页面路径是否为登录页面,以便处理这些情况。我目前在该领域有一个单独的问题。对于这个特定问题,我查看了许多资源,包括关于 SO 的以下资源,which introduces the BigQuery case function. 为了支持这个问题,这里是将构建的完整案例陈述。
Case when page = "^/XXX/[^/]+/default\.aspx" and landing page="^/XXX/[^/]+/default\.aspx" then "Homepage 2.0"
when page ="^/web/[^/]+/default\.aspx" and landing page = "^/web/[^/]+/default\.aspx" then "Homepage 1.0"
when page="^XXX/[^/]+/apps/booking?flight/(searchresult1|search(rt|ow|md))\.aspx" and landing page="^/XXX/[^/]+/default\.aspx" then "Rev inbound search 2.0"
when page="^web/[^/]+/apps/booking?flight/(searchresult1|search(rt|ow|md))\.aspx" and landing page="^/web/[^/]+/default\.aspx" then "Rev inbound search 1.0"
when page="^/XXX/[^/]+/apps/booking/flight/searchResult2\.aspx" and previous page ="^XXX/[^/]+/apps/booking?flight/(searchresult1|search(rt|ow|md))\.aspx" and landing page="^/XXX/[^/]+/default\.aspx" then "Rev outbound search 2.0"
when page="^/web/[^/]+/apps/booking/flight/searchResult2\.aspx" and previous page="^web/[^/]+/apps/booking?flight/(searchresult1|search(rt|ow|md))\.aspx" landing page="^/web/[^/]+/default\.aspx" then "Rev outbound search 1.0"
when page="^/XXX/[^/]+/apps/booking/flight/reviewRevenue\.aspx" and previous page="^/XXX/[^/]+/apps/booking/flight/searchResult2\.aspx" and landing page="^/XXX/[^/]+/default\.aspx" then "Rev review itinerary 2.0"
when page="^/web/[^/]+/apps/booking/flight/reviewRevenue\.aspx" and previous page="^/web/[^/]+/apps/booking/flight/searchResult2\.aspx" and landing page="^/web/[^/]+/default\.aspx" then "Rev review itinerary 1.0"
when page="^/XXX/[^/]+/apps/booking/flight/traveler\.aspx" and previous page="^/XXX/[^/]+/apps/booking/flight/reviewRevenue\.aspx" and landing page="^/XXX/[^/]+/default\.aspx" then "Rev traveler info 2.0"
when page="^/web/[^/]+/apps/booking/flight/traveler\.aspx" and previous page="^/web/[^/]+/apps/booking/flight/reviewRevenue\.aspx" and landing page="^/web/[^/]+/default\.aspx" then "Rev traveler info 1.0"
when page="^/XXX/[^/]+/apps/booking/flight/seatSelector\.aspx" and previous page="^/XXX/[^/]+/apps/booking/flight/traveler\.aspx" and landing page="^/XXX/[^/]+/default\.aspx" then "Rev seat selector 2.0"
when page="^/web/[^/]+/apps/booking/flight/seatSelector\.aspx" and previous page="^/web/[^/]+/apps/booking/flight/traveler\.aspx" and landing page="^/web/[^/]+/default\.aspx" then "Rev seat selector 1.0"
when page="^/XXX/[^/]+/apps/booking/flight/billingRevenue\.aspx" and previous page="^/XXX/[^/]+/apps/booking/flight/seatSelector\.aspx" and landing page="^/XXX/[^/]+/default\.aspx" then "Rev payment info 2.0"
我的第一个直觉是创建一个新列(可能),它查看用户采取的路径以确定唯一访问应该属于哪种情况。这可能不是最好的方向,也是我正在探索的方向。另一种是直接使用case函数。对于处理这部分查询的最佳方法,任何最初的支持或见解都是非常出色的。
【问题讨论】:
标签: google-analytics google-bigquery