【问题标题】:Select VISITID based on values from 2 different hit level data Bigquery根据来自 2 个不同命中级别数据 Bigquery 的值选择 VISITID
【发布时间】:2019-11-19 22:23:34
【问题描述】:

我的表中有一个 FULLVISITORID,有 2 个不同的访问 ID。

每个visitid 都有多个命中。我想选择一个 hits.page.pagepath = 'somepage' 的 visitid 和另一个 hits.eventInfo.eventCategory = 'some event'。对于同一个访问 ID,这两种情况都应该发生。

例如:

my_table 中选择 *,其中 FullVisitorid = '1'

FullVisitorid    Visitid   ........... hits.page.pagepath .....hits.event.eventCategory
    1              123                       A                       abc
                                             B                       cde 
                                             c                       efg
    1              147                      somePage                 ggg
                                             D                       fff
                                             E                       SomeEvent 

我希望结果是 VistiID = 147,因为 visitid 同时具有 pagepath = 'somepage' 和 eventcategory = 'someevent'

感谢您的帮助!

【问题讨论】:

    标签: select google-bigquery


    【解决方案1】:

    使用 CTE,您可以使用简单的连接逻辑来获得结果。

    with unnested as (
    -- Get the fields you care about
      select FullVisitorid, Visitid, h.page.pagepath, h.event.eventCategory
      from `dataset.table`
      left join unnest(hits) h
    ),
    somepage as (
    -- Get somepage hit Visitids
      select FullVisitorid, Visitid
      from unnested
      where pagepath = 'somepage'
      group by 1,2
    ),
    someevent as (
    -- Get someevent hit Visitids
      select FulVisitorid, Visitid
      from unnested
      where eventCategory = 'someevent'
      group by 1,2
    ),
    joined as (
    -- Join the CTEs to get common Visitids
      select FulVisitorid, Visitid
      from somepage
      inner join someevent using(FullVisitorid, Visitid)
    )
    select * from joined
    

    【讨论】:

    • 感谢您的帮助!但我收到一些页面的错误“无法识别的名称:页面路径”。
    • 尝试小写pagepath。我试图保持与您的示例相同的大小写。
    • 说到大写,我在您的标准中使用了小写 somepagesomeevent,尽管您的示例数据有 somePageSomeEvent。请相应调整
    猜你喜欢
    • 2020-10-12
    • 2016-06-13
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多