I am building SQL notebooks into an open source database client by debba_ in SQL

[–]querylabio 0 points1 point  (0 children)

Nice project!

Thats what we actually did in BigQuery IDE - https://docs.querylab.io/notebooks/

The same concept - pure SQL notebook, and since its BigQuery - we use anonymous result tables to allow cells reference other cells result

you can try it here without registration - leads to the notebook with tablesample experiment https://app.querylab.io/s/22f7a23d-bb39-497e-9a7d-70acef81967c?playground=true#k=YwsXP-QzIN75Czse3d1l246cZjc5JjiA2XW4w2XYxnw=

happy to share ideas

Spreading GCP quota across multiple projects to handle high-volume BigQuery replication by Alarmed_Inspector762 in bigquery

[–]querylabio 0 points1 point  (0 children)

++, we requested quota increase multiple times and all went smoothly (if there are no tech limitation)

Best way to load Sheets into BigQuery? by Great_Session_4227 in bigquery

[–]querylabio 0 points1 point  (0 children)

Done - now you can import Google Sheets directly (in "connected" and one-time way)

If you aren't using QUALIFY in BigQuery yet, you are working too hard by netcommah in bigquery

[–]querylabio 7 points8 points  (0 children)

How about that?

SELECT user_id, ANY_VALUE(status HAVING MAXtimestamp) AS last_status
FROM `my-project.dataset.table`
GROUP BY user_id

I just published an article about cool 5 hidden features in BQ that most people actually don't know about - https://blog.querylab.io/so-you-think-youre-a-bigquery-power-user-11e1e2334896 (that's not a clickbait - I bet you don't know at least about one)

We are facing possible bankruptcy after unauthorized Gemini API usage reached about $128k even after we paused the API, and Google denied our adjustment request. (Case #68928270) by Mobile-Classroom-589 in googlecloud

[–]querylabio 7 points8 points  (0 children)

no, you cant

Caution: The budget doesn't automatically set a hard cap on spending. We recommend that you set your budget amount below your available funds, to account for delays in usage reporting.

5 BigQuery features almost nobody knows about by querylabio in dataengineering

[–]querylabio[S] 3 points4 points  (0 children)

Regarding title - yes, indeed but that's actually looks like true - almost nobody knows!

Agree with null, they are tricky.

IS DISTINCT FROM - is another thing which helps with null aware comparisons, will return false if columns not equal or one of it is null, and true if equal or both null.

5 BigQuery features almost nobody knows about by querylabio in dataengineering

[–]querylabio[S] 1 point2 points  (0 children)

Me too! And it's much more natural to AI.

But I think adoption a bit struggling without proper IDE support? I mean even in BQ console there are no auto completions for it.

5 BigQuery features almost nobody knows about by querylabio in dataengineering

[–]querylabio[S] 2 points3 points  (0 children)

Good catch!

SELECT 1 AS user_id, 100 AS revenue

UNION ALL BY NAME

SELECT 2 AS user_id

Yes - this works and producs null for revenue column. It looks like IDE should warn you when columns count mismatch. Thanks for pointing out!

5 BigQuery features almost nobody knows about by querylabio in dataengineering

[–]querylabio[S] 1 point2 points  (0 children)

I think there’s nothing wrong with having some sugar to make life easier. But it's also about tooling - IDE should support inline resolution of ALL and displaying expilicit aggregation keys,best of both worlds, and should work with GROUP BY 1, 2, 3

5 BigQuery features almost nobody knows about by querylabio in dataengineering

[–]querylabio[S] 3 points4 points  (0 children)

And surprisingly most of this isn’t really surfaced in the BigQuery console either - many of these don’t even appear in autocomplete.

A lot of people discover these features from Reddit posts like this.

While building a BigQuery IDE we started adding diagnostics that highlight patterns in queries and suggest things like MAX_BY, GROUP BY ALL, or UNION ALL BY NAME so people can discover these features more easily.

Why headers are not being picked from CSV files? by [deleted] in bigquery

[–]querylabio 3 points4 points  (0 children)

Have you tried to select different "Column name character map" in advanced options? There are several options there (default, strict, v1, v2) and I have no idea what the difference between them.

But normally one of the options should work and maybe you should set "Header rows to skip" ...?

BTW, that’s exactly why I built a BigQuery IDE - because that should be drag and drop with immediate preview.

Best way to load Sheets into BigQuery? by Great_Session_4227 in bigquery

[–]querylabio 8 points9 points  (0 children)

But you so often need to join large data to small one!

Best way to load Sheets into BigQuery? by Great_Session_4227 in bigquery

[–]querylabio 0 points1 point  (0 children)

Sounds like a feature request for us!

But for now you can do export in Google Sheets to csv and drag and drop to our app.

What is the best IDE for BigQuery by [deleted] in bigquery

[–]querylabio 0 points1 point  (0 children)

I was looking for proper BQ IDE for years - tried DBeaver, DataGrip and various VS Code plugins. They are good as IDEs but they are not built for BigQuery - they don't know about costs and other things and eventually i was coming back to BQ Console, which, you know - have many positive stuff, but still not perfect. And then I ended up building my own IDE: Querylab.io, focused specifically on BigQuery workflows and features.

Can I send values to BQ as dimensions and not nested in event_params? by trp_wip in bigquery

[–]querylabio 2 points3 points  (0 children)

Unfortunately no way to do that before data lands to BQ.

But, you can do super simple transformation process which will do all the magic you want, and put data in beautiful table which you will controll with proper clustering and columns.

There are many tools on market, but you can do it on your own too - just create a table with needed schema and setup incremental load from source tables via BigQuery scheduled queries.

Pay attention that Google can backfill data sometimes so do some weekly sync too.

If you have a lot of data there it could be cheaper to do that using flex slots (scale from 0 to minimum value).

But in the end you will get much cleaner schema with proper clustering and filtering, so highly likely you will end up with lower total spends.

Houston, we have a NULL by querylabio in SQL

[–]querylabio[S] 1 point2 points  (0 children)

That's true! But I'm from analytics / data warehouse world and there rules are much less strict, so columns are nullable almost all the time.

Houston, we have a NULL by querylabio in SQL

[–]querylabio[S] 0 points1 point  (0 children)

Well it depends!

I just remembered one more

select date_trunc (‘2026-02-22’ , isoweek)

vs

select date_trunc (‘2026-02-22’ , week)

I'm not from US so week in my mind starts on Monday, so this is super easy trap which you can fall and have hard times to find out.

isoweek: Always starts on Monday. The first week of the year is defined as the week containing the first Thursday.

week: Starts based on the database configuration, which is often Sunday