WITH clause
Batch Streaming
WITH provides a way to write auxiliary statements for use in a larger query. These statements, which are often referred to as Common Table Expression (CTE), can be thought of as defining temporary views that exist just for one query.
WITH提供了一种编写辅助语句的方法,以便在更大的查询中使用。这些语句通常被称为公共表表达式(CTE),可以认为是定义了只存在于一个查询中的临时视图。
The syntax of WITH statement is:
WITH语句的语法为:
WITH <with_item_definition> [ , ... ]
SELECT ... FROM ...;
<with_item_defintion>:
with_item_name (column_name[, ...n]) AS ( <select_query> )
The following example defines a common table expression orders_with_total and use it in a GROUP BY query.
以下示例定义了一个公共表表达式orders_with_total,并在GROUP BY查询中使用它。
WITH orders_with_total AS (
SELECT order_id, price + tax AS total
FROM Orders
)
SELECT order_id, SUM(total)
FROM orders_with_total
GROUP BY order_id;