我们正在尝试使用SQL OVER()命令进行数学运算。
这是我们想要运行的那种查询......
SELECT SurvivedCount/(SUM(SurvivedCount) OVER()) AS PercentSurvived
...但它会出现此错误:
Encountered " "OVER" "OVER "" at line 2, column 50. Was expecting: ")" ...
除了将其拆分为两阶段SQL子选择之外,还有什么方法可以使用Google BigQuery上的OVER()操作进行数学运算?
答案 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