Ste*_*veC 47 sql-server union common-table-expression
你如何使用UNION多个Common Table Expressions?
我正在尝试汇总一些摘要数字,但无论我把它放在哪里;,我总是会收到错误
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;
Run Code Online (Sandbox Code Playgroud)
更新:我很欣赏上面的例子我可以将单个 CTE移到开头,但我有一些我想要的CTEUNION
Tho*_*mas 86
如果您尝试联合多个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;
Run Code Online (Sandbox Code Playgroud)
你甚至可以使用另一个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;
Run Code Online (Sandbox Code Playgroud)
WITH common_table_expression(Transact-SQL)
Dav*_*haw 13
你可以这样做:
WITH [Clients]
AS ( SELECT Client_No
FROM dbo.Decision_Data
GROUP BY Client_No
HAVING COUNT(*) = 1
),
[Clients2]
AS ( SELECT Client_No
FROM dbo.Decision_Data
GROUP BY Client_No
HAVING COUNT(*) = 1
)
SELECT COUNT(*)
FROM Clients
UNION
SELECT COUNT(*)
FROM Clients2;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59773 次 |
| 最近记录: |