如何在BigQuery上使用SQL OVER()命令进行数学运算

时间:2017-06-08 07:45:00

标签: sql google-bigquery

我们正在尝试使用SQL OVER()命令进行数学运算。

这是我们想要运行的那种查询......

SELECT SurvivedCount/(SUM(SurvivedCount) OVER()) AS PercentSurvived

...但它会出现此错误:

Encountered " "OVER" "OVER "" at line 2, column 50. Was expecting: ")" ... 

除了将其拆分为两阶段SQL子选择之外,还有什么方法可以使用Google BigQuery上的OVER()操作进行数学运算?

1 个答案:

答案 0 :(得分:2)

您需要启用标准SQL。默认情况下启用传统SQL。

#standardSQL
WITH
  tmp AS (
  SELECT
    10 AS SurvivedCount,
    'foo' AS a
  UNION ALL
  SELECT
    20 AS SurvivedCount,
    'foo' AS b)
SELECT
  SurvivedCount,
  SurvivedCount/(SUM(SurvivedCount) OVER()) AS PercentSurvived
FROM
  tmp

https://cloud.google.com/bigquery/docs/reference/standard-sql/enabling-standard-sql