Sql server 2008 组合多个cte
是否可以将两个cte的结果合并到另一个cte。我编写了一个结合两个cte的查询。结果给出了一个三列数据,我想在其中对第三列进行分组,并对第二列进行平均。第二列由case sum语句生成。如果您询问在查询中使用CTE后是否可以重新使用,答案是否。您不能这样做:Sql server 2008 组合多个cte,sql-server-2008,Sql Server 2008,是否可以将两个cte的结果合并到另一个cte。我编写了一个结合两个cte的查询。结果给出了一个三列数据,我想在其中对第三列进行分组,并对第二列进行平均。第二列由case sum语句生成。如果您询问在查询中使用CTE后是否可以重新使用,答案是否。您不能这样做: with A as ( -- query ) select A.* from A; -- this is a separate query select id , count(*) from A
with A
as (
-- query
)
select A.*
from A;
-- this is a separate query
select id
, count(*)
from A
group by
id
但是,您可以以各种方式组合CTE,只要在一条语句中进行组合即可。您可以这样做,在两个CTE中使用假设的CTEA
,并使用最终查询:
with A
as (
-- some query
)
, ACustomers
as (
select *
from Customers
join A
on ....
)
, AVendors
as (
select *
from Vendors
join A
on ....
)
select A.StateId
, ACount = COUNT(*)
, CustomerCount = (select count(*) from ACustomers ac where ac.StateId = A.StateId )
, VendorCount = (select count(*) from AVendors av where av.StateId = A.StateId )
from A
group by
A.StateId
发布您已经尝试过的查询。我希望这有帮助。这就是你想要的吗do@Arvin我不知道,但我有时至少做了8次。我看了看,在任何地方都找不到规定的限制。