我希望在一次查询中同时返回会话 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
但是,这不起作用。如有小费,将不胜感激
我们对某个用户的订单感兴趣,因此您的查询模式应如下所示:
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 子句中制定匹配条件。