将两个查询合并为一个

Combine Two Queries To One

在 Access 中 - 我想显示一个查询,为用户提供这两个查询的结果,因此查询结果是 州、CountOfSP、CountOfUsers

目前要获取信息,我们 运行 两个单独的查询

Select State, Count(userID) As CountOfUsers
From SalesData
Group By State
Order By State;

那么我们的第二个查询是

Select [%$##_Alias].State, Count(salesPerson) As CountOfSalesPerson
From 
(
  Select distinct salesPerson, State
  From salesData
) AS [%$##@_Alias]
Group By [%$##@_Alias].State

在访问 sql 中是否有一种方法可以组合这两个查询,以便我可以从一个查询中获取我需要的所有数据?

编辑
我试过这种语法,但它给了我很大的膨胀数字和 CountOfUsers 和 CountOfSalesPerson

完全相同的计数
SELECT salesData.State, Count(salesData.userID) AS CountOfUsers, C 
ount(Regioninfo.salesPerson) AS CountOfSalesPerson
FROM salesData 
LEFT JOIN 
(
    Select distinct salesPerson, State
    From salesData
    group by Region, salesPerson
)  AS Regioninfo ON salesData.State = Regioninfo.State
GROUP BY salesData.State
ORDER BY salesData.State;

你可以这样加入他们:

Select State, Count(userID) As CountOfUsers, Count(stateinfo.salesPerson) As CountOfSalesPerson
From SalesData
left join (
  Select salesPerson, State
  From salesData
  group by salesperson, state
) AS stateinfo on salesdata.state = stateinfo.state
Group By Region
Order By Region;

另一种方式:

Select State, Count(userID) As CountOfUsers, stateinfo.c As CountOfSalesPerson
From SalesData
left join (
  select count(z) as c, state
  from (
    Select distinct salesPerson as z, State
    From salesData
  ) as x
   group by state
) AS stateinfo on salesdata.state = stateinfo.state
Group By Region, stateinfo.c
Order By Region;
;with t as
(
    Select [%$##_Alias].State, Count(salesPerson) As CountOfSalesPerson
    From 
    (
        Select distinct salesPerson, State
        From salesData
    ) AS [%$##@_Alias]
    Group By [%$##@_Alias].State
)

Select State, Count(userID) As CountOfUsers, t.CountOfSalesPerson
From SalesData s
left join t on t.state = s.state
Group By Region
Order By Region;

您可以使用两个聚合级别:

select State, sum(cnt) as CountOfUsers, count(*) as CountOfSalesPerson
from (Select State, salesPerson, Count(*) As cnt
      From SalesData
      Group By State
     ) as s
group by State
order by State;