[英]How to get an average number from already counted value
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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.