我有一个BigQuery表,该表本质上是给定用户会话的事件跟踪。我想在示例中按轨道对数据进行分区,并生成在轨道上平均的事件的频率分布。
跟踪事件名称1个1个1℃2个3个3个
因此,对于这些数据,结果将是
A-100%B-66%C-33%
也就是说所有轨道都包含事件A,66%的轨道包含事件B,33%的轨道包含事件C。
我想使用SQL和PARTITION BY中的解析函数来执行此操作,但是不确定如何进行。谢谢!
下面是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
如果要使用分区,则可以通过以下方式进行: