gpt4 book ai didi

sql-server - 如何与多个 CTE 联合?

转载 作者:行者123 更新时间:2023-12-01 18:01:38 24 4
gpt4 key购买 nike

如何将 UNION 与多个公共(public)表表达式结合使用?

我正在尝试汇总一些摘要数字,但无论我将 ; 放在哪里,我总是会收到错误

SELECT  COUNT(*)
FROM dbo.Decision_Data
UNION
SELECT COUNT(DISTINCT Client_No)
FROM dbo.Decision_Data
UNION
WITH [Clients]
AS ( SELECT Client_No
FROM dbo.Decision_Data
GROUP BY Client_No
HAVING COUNT(*) = 1
)
SELECT COUNT(*) AS [Clients Single Record CTE]
FROM Clients;

我很欣赏上面的示例,我可以将单个 CTE 移到开头,但我有许多 CTE,我想UNION

最佳答案

如果您尝试合并多个 CTE,则需要先声明 CTE,然后使用它们:

With Clients As
(
Select Client_No
From dbo.Decision_Data
Group By Client_No
Having Count(*) = 1
)
, CTE2 As
(
Select Client_No
From dbo.Decision_Data
Group By Client_No
Having Count(*) = 2
)
Select Count(*)
From Decision_Data
Union
Select Count(Distinct Client_No)
From dbo.Decision_Data
Union
Select Count(*)
From Clients
Union
Select Count(*)
From CTE2;

您甚至可以使用一个 CTE 中的另一个:

With Clients As
(
Select Client_No
From dbo.Decision_Data
Group By Client_No
Having Count(*) = 1
)
, CTE2FromClients As
(
Select Client_No
From Clients
)
Select Count(*)
From Decision_Data
Union
Select Count(Distinct Client_No)
From dbo.Decision_Data
Union
Select Count(*)
From Clients
Union
Select Count(*)
From CTE2FromClients;

WITH common_table_expression (Transact-SQL)

关于sql-server - 如何与多个 CTE 联合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11542288/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com