FLOAT vs NUMERIC in BigQuery

Senior Data Engineer • Contractor / Freelancer • GCP & AWS Certified
Search for a command to run...

Senior Data Engineer • Contractor / Freelancer • GCP & AWS Certified
No comments yet. Be the first to comment.
Short, practical posts on SQL and BigQuery — from core language features to advanced query patterns. A reference for data practitioners at every level.
So you have to write a SQL query and after tirelessly working on it, you get more rows than you expected. It looks otherwise correct, but some of the records you see multiple times. Now, while the temptation to just slap a DISTINCT in that final SELE...
Here's a useful Dataform concept: pre_operations and post_operations. As the name implies, these represent a set of actions that run before and after the main operation (table, view, or SQL operations

BigQuery has always been a SQL engine for tabular data. Object tables add an interesting twist to that. Instead of rows containing values, an object table gives you one row per file — pointing at da

Query your data lake with warehouse-grade security and performance — without moving a single file.

Ever run a heavy BigQuery SQL query, processed gigabytes of data — and then accidentally closed the tab or forgot to save the results? 😬 Don't re-run it. Your results are still there. BigQuery automa

You can use query parameters in BigQuery hashtag#SQL (now in the console as well!) — but how are they different from variables, and when should you use each? Both parameters and variables act as place

What are the differences between FLOAT (FLOAT64) vs NUMERIC data types in BigQuery SQL and when to use each?
While they both can express decimals, they have some important differences in terms of precision and performance.
🔷 FLOAT (FLOAT64): a double-precision floating-point number.
Pros:
- can express a large array of values, both large and very very small.
- uses 8 logical bytes (half as compared to NUMERIC)
- calculations can be faster
- we have literals for not-a-number NaN, minus/plus infinity
Cons:
- it's an approximate data type, yielding potential rounding errors
Use cases
- queries that can tolerate small differences i.e. how many kg of chocolate we eat per capita per year
- scientific calculations with very large numbers
🔷 NUMERIC: a fixed-point decimal type for up to 38 digits, 9 decimal places, alias for DECIMAL
Pros:
- exact storage avoiding rounding errors, no loss of precision
Cons:
- uses 16 logical bytes
- calculations can be slower
When to use it:
- anywhere every single decimal digit matters, like finance or sending a spaceship to another planet
P.S. There's also BIGNUMERIC (alias for BIGDECIMAL) if you need even larger range, but that takes 32 logical bytes.
Found it useful? Subscribe to my Analytics newsletter at notjustsql.com.