How to Create a View in BigQuery

Last updated July 26, 2026 · By the SaturnSQL team

CREATE VIEW ... AS SELECT stores a query definition that re-runs on every access at no storage cost. A materialized view precomputes and caches the result instead.

CREATE VIEW analytics.daily_signups AS
SELECT DATE(created_at) AS signup_date, COUNT(*) AS signups
FROM users
GROUP BY signup_date;

Materialized views for repeated aggregations

A materialized view stores its result and incrementally refreshes it as the base table changes, so repeated reads skip recomputing the aggregation. Use it for expensive queries that many dashboards hit often.

CREATE MATERIALIZED VIEW analytics.daily_signups_mv AS
SELECT DATE(created_at) AS signup_date, COUNT(*) AS signups
FROM users
GROUP BY signup_date;

A regular view costs nothing to store but scans the full underlying query each time; a materialized view costs storage and background refresh compute but makes reads much cheaper.

Run this in SaturnSQL

SaturnSQL is a browser-based SQL editor for teams: shared query library, schema-aware autocomplete, and scheduled exports to Google Sheets and Slack.

Try it free

Related BigQuery guides