sql MS SQL CTE

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql MS SQL CTE相关的知识,希望对你有一定的参考价值。

-- Example 1
-- CTE Name and Column List
WITH Sales_CTE (SalesPersonID,SalesOrderID, SalesYear)
AS
-- CTE Query
(
    SELECT SalesPersonID,
           SalesOrderID,
           YEAR(OrderDate) As SalesYear
    FROM Sales.SalesOrderHeader
	  WHERE SalesPersonID IS NOT NULL
)
-- Outer Query
SELECT SC.SalesPersonID,
       COUNT(SC.SalesOrderID) AS TotalSales,
	   SC.SalesYear
FROM Sales_CTE AS SC
GROUP BY SC.SalesYear,SC.SalesPersonID
ORDER BY SC.SalesPersonID, SC.SalesYear;

-- Example 2
WITH Sales_CTE (SalesPersonID, NumberOfOrders)  
AS  
(  
    SELECT SalesPersonID, COUNT(*)  
    FROM Sales.SalesOrderHeader  
    WHERE SalesPersonID IS NOT NULL  
    GROUP BY SalesPersonID  
)  
SELECT AVG(NumberOfOrders) AS "Average Sales Per Person"  
FROM Sales_CTE;

以上是关于sql MS SQL CTE的主要内容,如果未能解决你的问题,请参考以下文章

sql server中的cte

SQL-CTE公用表达式

优化sql嵌套查询,使用CTE语法

SQL中使用WITH 语句的查询

Presto SQL 是不是像 SQL Server 一样支持使用 CTE 进行递归查询?例如员工等级

sql 带有更新追踪程序的SQL CTE公用表表达式示例。