如何在bigQuery 4中返回会话id和订单id

问题描述 投票:0回答:1

我希望在一次查询中同时返回会话 ID 和订单 ID。

我已经尝试了以下会话查询:

SELECT 
    DISTINCT
    CONCAT(user_pseudo_id, CAST((SELECT value.int_value FROM tbl.event_params WHERE key = 'ga_session_id') AS STRING)) as sessionId,
  

FROM `mytable` as tbl1

另外,我已经尝试过使用此方法来获取交易ID


ecommerce.transaction_id AS orderId,
    
(SELECT value.string_value  FROM UNNEST(items.item_params) ep WHERE key='dimension') as plan

FROM `mytable` , UNNEST(items) AS items

我希望在一个查询中包含两个 ID。像下面这样

SELECT 
    DISTINCT
    CONCAT(user_pseudo_id, CAST((SELECT value.int_value FROM tbl.event_params WHERE key = 'ga_session_id') AS STRING)) as sessionId,
ecommerce.transaction_id AS orderId,
    
(SELECT value.string_value  FROM UNNEST(items.item_params) ep WHERE key='dimension') as plan

FROM `mytable` , UNNEST(items) AS items

但是,这不起作用。如有小费,将不胜感激

google-bigquery
1个回答
0
投票

我们对某个用户的订单感兴趣,因此您的查询模式应如下所示:

select <some fields>
from (SELECT 
    DISTINCT
    CONCAT(user_pseudo_id, CAST((SELECT value.int_value FROM tbl.event_params WHERE key = 'ga_session_id') AS STRING)) as sessionId,
FROM `mytable`)  as tbl1
join (ecommerce.transaction_id AS orderId,
    
(SELECT value.string_value  FROM UNNEST(items.item_params) ep WHERE key='dimension') as plan

FROM `mytable` , UNNEST(items) AS items) as tbl2
on <some join condition>

但是你需要以某种方式将两者联系起来。链接两者的方式很大程度上取决于您的表结构。例如,如果订单有事件 id 或 user_pseudo_id,那么您需要做的就是调整第二个子查询,以便它也选择此字段,然后在 on 子句中制定匹配条件。

© www.soinside.com 2019 - 2024. All rights reserved.