A closer look at STRING_AGG 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.
Truth be told, I almost never use GenAI as part of my day-to-day work as a Data Engineer. For the most part, it’s just easier and faster for me to write the SQL code myself. There are a few reasons for this:➡️ If the task is complex enough to need Ch...
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

Modern SQL engines have a wealth of aggregation functions.
Here's a quick example that makes use ofBigQuery STRING_AGG.
What does it do?
It aggregates all the values in a grouping, joined by a separator of our choice, creating a string of those joined values.
We can of course choose to:
➡️ keep only distinct values, as well as
➡️ order the values in the newly created string
so that, as in the below example, ("Card", "Cash") and ("Cash", "Card") both produce "Card~Cash", every time.
Any interesting aggregation function that you use in your SQL dialect?
Found it useful? Subscribe to my Analytics newsletter at notjustsql.com.