Google bigquery BigQueryUnnest复制值

Google bigquery BigQueryUnnest复制值,google-bigquery,Google Bigquery,我试图创建一个谷歌分析数据的摘要:会话、交易和转换率,按小时和源属性(在我的例子中是命名服务)。我正在从汇总属性数据集中查询名为“ga_realtime_view”的表。它是从“ga_realtime_sessions_”表创建的虚拟视图,允许我们使用标准SQL 为了获得服务列,我必须使用UNNEST操作。但是,当我这样做时,它会复制所有会话和事务值 以下是查询: 选择 提取(从时区“欧洲/巴黎”的时间戳中的小时\u秒(访问开始时间))作为小时, hits.sourcePropertyInfo.

我试图创建一个谷歌分析数据的摘要:会话、交易和转换率,按小时和源属性(在我的例子中是命名服务)。我正在从汇总属性数据集中查询名为“ga_realtime_view”的表。它是从“ga_realtime_sessions_”表创建的虚拟视图,允许我们使用标准SQL

为了获得服务列,我必须使用UNNEST操作。但是,当我这样做时,它会复制所有会话和事务值

以下是查询:

选择
提取(从时区“欧洲/巴黎”的时间戳中的小时\u秒(访问开始时间))作为小时,
hits.sourcePropertyInfo.sourcePropertyDisplayName作为服务,
IFNULL(总计访问次数),0)作为会话,
如果NULL(总和(totals.transactions),0)为事务,
IFNULL(四舍五入((总和(totals.transactions)/总和(总和(totals.visions))*100,2),0)作为转换率
从'XX.ga_realtime_view'作为会话,UNNEST(session.hits)作为命中
分组
小时,
服务
订购人
时辰
我知道关于这个重复问题还有其他的话题,但是我似乎找不到解决我的问题的办法


感谢您的帮助

听起来您希望避免将表与数组(通过
,UNNEST(session.hits)
)合并,因为这会产生重复所有总数的效果。不过,不清楚您想对服务名称执行什么操作:如果有多个名称,是否要返回所有名称的数组?这是唯一的方法:

SELECT
EXTRACT(HOUR FROM TIMESTAMP_SECONDS(visitStartTime) AT TIME ZONE 'Europe/Paris') AS Hour,
ARRAY(
   SELECT sourcePropertyInfo.sourcePropertyDisplayName
   FROM UNNEST(session.hits) AS hits
) AS service,
IFNULL(SUM(totals.visits),0) as sessions,
IFNULL(SUM(totals.transactions),0) as transactions,
IFNULL(ROUND((SUM(totals.transactions)/SUM(totals.visits))*100,2),0) AS conversionRate
FROM `XX.ga_realtime_view` AS session
GROUP BY
Hour,
service
ORDER BY
Hour
不过,您会注意到,查询现在给出了一个错误,您无法按数组分组。如果您希望在hits中只提供单一类型的服务,您可以仅提取一种:

SELECT
EXTRACT(HOUR FROM TIMESTAMP_SECONDS(visitStartTime) AT TIME ZONE 'Europe/Paris') AS Hour,
(SELECT MAX(sourcePropertyInfo.sourcePropertyDisplayName)
 FROM UNNEST(session.hits) AS hits) AS service,
IFNULL(SUM(totals.visits),0) as sessions,
IFNULL(SUM(totals.transactions),0) as transactions,
IFNULL(ROUND((SUM(totals.transactions)/SUM(totals.visits))*100,2),0) AS conversionRate
FROM `XX.ga_realtime_view` AS session
GROUP BY
Hour,
service
ORDER BY
Hour

谢谢事实上,服务=源属性=网站。我们有不同的网站,每个网站都有自己的GA属性。所以我想做的是按小时和网站计算交易和会话的数量。这更清楚了吗?无法编辑我的评论,但您的解决方案与我想做的非常吻合!再次感谢