2017-06-08 1 views
1

Wir versuchen, eine mathematische Operation mit dem Befehl SQL OVER() auszuführen.Wie Sie mathematische Operationen mit dem Befehl SQL OVER() auf BigQuery ausführen

Dies ist die Art der Abfrage ist würden wir gerne laufen ...

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

... aber es gibt diesen Fehler:

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

Neben dieser in einem zweistufigen SQL aus dem Splitting Sub-Auswahl, gibt es eine Möglichkeit, Mathe mit der Operation OVER() auf Google BigQuery zu tun?

Antwort

2

Sie müssen Standard-SQL aktivieren. Legacy SQL ist standardmäßig aktiviert.

#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

+0

Insbesondere dann, wenn ich mich richtig erinnere, gibt es ein Parsing Problem mit Klammern um analytische Funktionen Legacy-SQL verwenden, aber es sollte in Ordnung Standard-SQL verwenden arbeiten. –

Verwandte Themen