簡體   English   中英

如何從已計算的值中獲取平均值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM