Select 根据两个不同命中率数据Bigquery中的值选择VISITID

Select 根据两个不同命中率数据Bigquery中的值选择VISITID,select,google-bigquery,Select,Google Bigquery,我的桌子上有一个FULLVISITORID,有两个不同的visitid 每个visitid都有多个点击。我想选择点击的visitid.page.pagepath='somepage' 另一个hits.eventInfo.eventCategory='some event'。这两种情况都应该发生在同一个visitid上 例如: 从my_表中选择*其中FullVisitorid='1' FullVisitorid Visitid ........... hits.page.pagepath

我的桌子上有一个FULLVISITORID,有两个不同的visitid

每个visitid都有多个点击。我想选择点击的visitid.page.pagepath='somepage' 另一个hits.eventInfo.eventCategory='some event'。这两种情况都应该发生在同一个visitid上

例如:

从my_表中选择*其中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'


谢谢你的帮助

使用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

使用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”。请尝试小写
Pagepath
。我试图保持与您的示例相同的大小写。谈到大小写,我在您的标准中使用了小写的
somepage
someevent
,尽管您的示例数据有
somepage
someevent
。请相应调整谢谢您的帮助!但我在某个页面上收到错误“无法识别的名称:Pagepath”。请尝试小写
Pagepath
。我试图保持与您的示例相同的大小写。谈到大小写,我在您的标准中使用了小写的
somepage
someevent
,尽管您的示例数据有
somepage
someevent
。请作相应调整