2016-04-15 13 views
1

Ich habe ein Problem mit INTEGER Typ. Es überläuft und wo ist es nicht zu verhindern (wie es ist 64 Bit unsigned Int). Das Schlimmste, was es ohne Fehler oveflows, immer nur negative ZahlBigquery: INTEGER Typ Überlauf

SELECT 9223372036854775807 + 1 

Gibt es eine Möglichkeit, dieses Problem zu überwinden (vielleicht Google plant neue int-Typen einführen)?

+0

jede BigQuery wirklichen Leben Anwendungsfall zu tun? –

+0

@MikhailBerlyant Aggregation von Geld, das als Nanocent gespeichert ist (eine unserer Anforderungen) – Alexey

Antwort

2

BigQuery eine Option für SQL liefert Fehler in solchen Fällen (ganzzahliger Überlauf, Division durch Null, etc.)

+0

Vielen Dank! Hast du irgendwelche Schätzungen wann es veröffentlicht wird? – Alexey

+0

Ich hoffe, es in der Produktion in ein paar Wochen zu sehen. –

+0

Es ist jetzt verfügbar, Details unter https://cloud.google.com/bigquery/sql-reference/enabling-standard-sql –

0

erhöhen kann man solche Bedingungen erkennen und zu verwenden, z.B. NULL als Fehlerindikator, auf Kosten von mehr Typisierung.

So etwas wie (vorausgesetzt, Sie summieren sich zwei nicht-negative Werte):

select if(a + b >= a, a + b, NULL) from 
( -- sample data 
    select 9223372036854775807 as a, 1 as b 
) 
Verwandte Themen