Common table expression
Note
To see which AWS data source integrations support this SQL command, see Supported OpenSearch SQL commands and functions.
A common table expression (CTE) defines a temporary result set that a user
can reference possibly multiple times within the scope of a SQL statement. A
CTE is used mainly in a SELECT
statement.
Syntax
WITH common_table_expression [ , ... ]
While common_table_expression
is defined as:
Syntexpression_name [ ( column_name [ , ... ] ) ] [ AS ] ( query )
Parameters
-
expression_name
Specifies a name for the common table expression.
-
query
A
SELECT
statement.
Examples
-- CTE with multiple column aliases WITH t(x, y) AS (SELECT 1, 2) SELECT * FROM t WHERE x = 1 AND y = 2; +---+---+ | x| y| +---+---+ | 1| 2| +---+---+ -- CTE in CTE definition WITH t AS ( WITH t2 AS (SELECT 1) SELECT * FROM t2 ) SELECT * FROM t; +---+ | 1| +---+ | 1| +---+ -- CTE in subquery SELECT max(c) FROM ( WITH t(c) AS (SELECT 1) SELECT * FROM t ); +------+ |max(c)| +------+ | 1| +------+ -- CTE in subquery expression SELECT ( WITH t AS (SELECT 1) SELECT * FROM t ); +----------------+ |scalarsubquery()| +----------------+ | 1| +----------------+ -- CTE in CREATE VIEW statement CREATE VIEW v AS WITH t(a, b, c, d) AS (SELECT 1, 2, 3, 4) SELECT * FROM t; SELECT * FROM v; +---+---+---+---+ | a| b| c| d| +---+---+---+---+ | 1| 2| 3| 4| +---+---+---+---+