如何在BigQuery中先对两列逐行求和再计算平均值?
在Google BigQuery中实现行内求和后计算平均值的SQL语法
你可以通过两种简洁的SQL写法实现需求,记得将your_project.your_dataset.your_table_name替换为你实际的项目、数据集和表名:
写法一:使用子查询分步计算
SELECT AVG(row_sum) AS average_total FROM ( SELECT grade1 + grade2 AS row_sum FROM `your_project.your_dataset.your_table_name` )
这种写法先通过子查询生成每行grade1与grade2的和(命名为row_sum),再对所有行的row_sum计算平均值。
写法二:直接嵌套聚合函数(更简洁)
SELECT AVG(grade1 + grade2) AS average_total FROM `your_project.your_dataset.your_table_name`
BigQuery会自动先逐行计算grade1 + grade2的结果,再对所有结果执行平均值计算,逻辑和你预期的两步完全一致。
示例数据验证
针对你提供的示例表格,两种写法都会得到相同结果:
- 每行求和结果:128000、168000、90000
- 平均值:
(128000 + 168000 + 90000) / 3 ≈ 128666.67
内容的提问来源于stack exchange,提问作者Mahbub Ar Rashid
相关产品推荐
相关产品推荐

