gpt4 book ai didi

sql - Bigquery SQL - 在 SELECT 或 JOIN 中取消嵌套更好吗?

转载 作者:行者123 更新时间:2023-12-02 06:50:13 25 4
gpt4 key购买 nike

我有一个数据集,其中 View 嵌套在 session 中,我想要每个 session 的 View 计数。构造此类查询的更有效/正确的方法是什么?

是否有任何文档讨论在 BigQuery SQL 中编写查询的首选方式?

SELECT session_key, ( SELECT COUNT( view_id ) FROM UNNEST( views ) views ) AS view_count 
FROM sessions
WHERE _PARTITIONTIME >= TIMESTAMP( '2016-04-01' ) ;

SELECT session_key, COUNT( view_id ) AS view_count
FROM sessions
LEFT JOIN UNNEST( views ) views
WHERE _PARTITIONTIME >= TIMESTAMP( '2016-04-01' )
GROUP BY session_key;

谢谢

最佳答案

工作查询:

一)

SELECT visitId, ( SELECT COUNT( hitNumber ) FROM UNNEST( hits ) ) AS view_count 
FROM `google.com:analytics-bigquery.LondonCycleHelmet.ga_sessions_20130910`

二)

SELECT visitId, COUNT( hitNumber ) AS view_count 
FROM `google.com:analytics-bigquery.LondonCycleHelmet.ga_sessions_20130910`
LEFT JOIN UNNEST( hits )
GROUP BY visitId

第一个查询看起来更短更简洁,但我们也来看看解释选项卡:

一个) enter image description here

b) enter image description here

它在执行时看起来也更好!可能是因为第二个查询有一个 GROUP BY visitId,这会强制 BigQuery 查看是否有任何其他具有相同 ID 的 session 。

但如果您正在寻找更简洁的选项:

SELECT visitId, ARRAY_LENGTH(hits) AS view_count 
FROM `google.com:analytics-bigquery.LondonCycleHelmet.ga_sessions_20130910`

关于sql - Bigquery SQL - 在 SELECT 或 JOIN 中取消嵌套更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47039541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com