select aa.AccNumber, aa.AccName, count(ProductID) as Products
from vProducts pr
left join vAllAccounts aa with (nolock)
on aa.AccountID = pr.AccountID
group by aa.AccNumber, aa.AccID, aa.AccName
order by Products desc
你好,这是我的问题。我计算了每个帐户的产品总数,但现在我需要使用前面的查询计算每个帐户的平均产品数量。请帮帮我。我从来没有这样做过。
select avg(sales.Products) from
(
select aa.AccNumber, aa.AccName, count(ProductID) as Products
from vProducts pr
left join vAllAccounts aa with (nolock)
on aa.AccountID = pr.AccountID
group by aa.AccNumber, aa.AccID, aa.AccName
) sales
您可以直接获得每个帐户的平均产品数量:
select count(pr.AccountId) * 1.0 / count(distinct aa.AccNumber)
from vAllAccounts join
vProducts pr
on aa.AccountID = pr.AccountID;
计算产品总数并除以帐户总数。* 1.0
是因为SQL Server做了整数除法。
如果所有帐户至少有一个产品,您可以进一步简化:
select count(*) * 1.0 / count(distinct pr.AccNumber)
from vProducts pr;