BigQuery Legacy SQL(子查询?)中占总数的百分比
Posted
技术标签:
【中文标题】BigQuery Legacy SQL(子查询?)中占总数的百分比【英文标题】:Percentage to total in BigQuery Legacy SQL (Subqueries?) 【发布时间】:2016-06-24 12:59:56 【问题描述】:我不明白如何在 BigQuery Legacy SQL 中计算占总数的百分比。 所以,我有一张桌子:
ID | Name | Group | Mark
1 | John | A | 10
2 | Lucy | A | 5
3 | Jane | A | 7
4 | Lily | B | 9
5 | Steve | B | 14
6 | Rita | B | 11
我想这样计算百分比:
ID | Name | Group | Mark | Percent
1 | John | A | 10 | 10/(10+5+7)=45%
2 | Lucy | A | 5 | 5/(10+5+7)=22%
3 | Jane | A | 7 | 7/(10+5+7)=33%
4 | Lily | B | 9 | 9/(9+14+11)=26%
5 | Steve | B | 14 | 14/(9+14+11)=42%
6 | Rita | B | 11 | 11/(9+14+11)=32%
我的桌子对我来说很长(300 万行)。 我认为我可以使用子查询来做到这一点,但在 SELECT 中我不能使用子查询。 有人知道怎么做吗?
【问题讨论】:
【参考方案1】:SELECT
ID, Name, [Group], Mark,
RATIO_TO_REPORT(Mark) OVER(PARTITION BY [Group]) AS percent
FROM YourTable
查看更多关于RATIO_TO_REPORT的信息
【讨论】:
以上是关于BigQuery Legacy SQL(子查询?)中占总数的百分比的主要内容,如果未能解决你的问题,请参考以下文章
Google Bigquery Legacy SQL - 如果没有返回结果,如何返回 null 或零?
Google Bigquery Legacy SQL - 如何将周数设置为星期一?
Bigquery Standard Sql 等效于 Legacy Sql 中的 LAST()
如何通过 BigQuery 连接将 use_legacy_sql=False 传递给 Airflow DAG 中的 SqlSensor?