如何从已计算的值中获得平均数

时间:2016-08-11 15:46:29

标签: sql sql-server database

class Thing1 {

    let variable: SomeProtocol

    init(variable: SomeProtocol) {
        self.variable = variable
        add1(variable)
    }

    func add1(stuff: SomeProtocol) {
        let thing = Thing2()
        thing.add2(stuff)
    }
}

class Thing2 {
    func add2(stuff: SomeProtocol) {

    }
}

嗨,这是我的查询。 我计算了每个帐户的产品总数,但现在我需要使用以前的查询计算每个帐户的平均产品数量。 请帮帮我。我以前从未这样做过。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

您可以直接获得每个帐户的平均产品数量:

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;