更新时间:2025-09-05 GMT+08:00

WITH

功能描述

WITH子句提供了一种用于更大查询而编写辅助语句的方法。这些编写的语句通常被称为公用表表达式,表达式可以理解为仅针对某个查询而存在的临时视图,常用于查询结果重复利用和提高sql可读性。

语法格式

WITH <with_item_definition> [ , ... ]
SELECT ... FROM ...;
 
<with_item_definition>:
    with_item_name (column_name[, ...n]) AS ( <select_query> )

语法示例

下面的示例中定义了一个公用表表达式 resource_with_total ,并在一个 GROUP BY 查询中使用它。

WITH resource_with_total AS (
    SELECT resource_id, name, type, count(*) AS total
FROM security_resource
group by resource_id, name, type
)
SELECT type, SUM(total)
FROM resource_with_total
GROUP BY type;