Syntax

CREATE MATERIALIZED VIEW [IF NOT EXISTS] mv_name AS select_query;

CREATE MATERIALIZED VIEW will first backfill historical data from the referenced relations, and completion time varies based on the volume of data to be backfilled.

To perform the operations in the background, you can execute SET BACKGROUND_DDL=true; before running the CREATE MATERIALIZED VIEW statement. See details in SET BACKGROUND_DDL.

Parameters

Parameter or clauseDescription
mv_nameThe name of the materialized view to be created.
select_queryA SELECT query that retrieves data for the materialized view. See SELECT for the syntax and examples of the SELECT command.

Names and unquoted identifiers are case-insensitive. Therefore, you must double-quote any of these fields for them to be case-sensitive. See also Identifiers.

The ORDER BY clause in the CREATE MATERIALIZED VIEW statement is allowed but not considered as part of the definition of the materialized view. It’s only used in the initial creation of the materialized view and not during refreshes.

Examples

Refer to this tutorial for examples of creating materialized views based on external sources or existing materialized views.

See also