如何在BigQuery中计算分区上的平均事件发生频率

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

我有一个BigQuery表,该表本质上是给定用户会话的事件跟踪。我想在示例中按轨道对数据进行分区,并生成在轨道上平均的事件的频率分布。

跟踪事件名称1个1个1℃2个3个3个

因此,对于这些数据,结果将是

A-100%B-66%C-33%

也就是说所有轨道都包含事件A,66%的轨道包含事件B,33%的轨道包含事件C。

我想使用SQL和PARTITION BY中的解析函数来执行此操作,但是不确定如何进行。谢谢!

google-bigquery partition data-partitioning
2个回答
0
投票

下面是BigQuery标准SQL的内容>>

#standardSQL
SELECT DISTINCT event, 
  ROUND(100 * COUNT(1) OVER(PARTITION BY event) / COUNT(DISTINCT track) OVER(), 2) frequency
FROM `project.dataset.table`  

如果应用于您的问题的样本数据-结果为

Row event   frequency    
1   A       100.0    
2   B       66.67    
3   C       33.33   

0
投票

如果要使用分区,则可以通过以下方式进行:

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