【发布时间】:2015-05-28 19:22:19
【问题描述】:
我是一家保险公司的实习生,我被分配计算 x 数量客户的保费平均值。
我使用的是 SQL Server 2014!!
下面是我的查询:
SELECT
Customer.custno
, Customer.custid
, (Customer.firstname + ' ' + Customer.lastname) AS Client
, BasicPolInfo.enteredDate
, BasicPolInfo.changedDate
, BasicPolInfo.fulltermpremium AS Premium
, AVG(BasicPolInfo.fulltermpremium) over(ORDER BY Customer.custno
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS 'Total Premium'
FROM
Customer INNER JOIN
BasicPolInfo ON Customer.CustId = BasicPolInfo.CustId INNER JOIN
Transaction ON BasicPolInfo.PolId = Transaction.PolId INNER JOIN
GeneralLedgerBranch ON Customer.GLBrnchCode = GeneralLedgerBranch.GLBrnchCode INNER JOIN
GeneralLedgerDepartment ON Customer.GLDeptCode = GeneralLedgerDepartment.GLDeptCode INNER JOIN
GeneralLedgerDivision ON Customer.GLDivCode = GeneralLedgerDivision.GLDivCode INNER JOIN
Employee ON BasicPolInfo.ExecCode = Employee.EmpCode
WHERE
Customer.Active = 'Y'
AND BasicPolInfo.poltypelob = 'Homeowners'
AND BasicPolInfo.status <> 'D'
AND BasicPolInfo.fulltermpremium > '0.00'
AND BasicPolInfo.polexpdate >= GetDate()
GROUP BY
Customer.custno
, Customer.custid
, Customer.firstname
, Customer.lastname
, BasicPolInfo.ChangedDate
, BasicPolInfo.entereddate
, Employee.firstname
, Employee.lastname
, Customer.enteredDate
, basicpolinfo.fulltermpremium
ORDER BY
Customer.enteredDate ASC
所以我的表是这样的:
卡斯特诺 |客户 ID |客户 |进入日期 |更改日期 |高级 |总溢价
xxxxxx | xxxxxx | xxxxxx | xxxxxxxxxxx | xxxxxxxxxxx | 1350.38 | 1350.38
xxxxxx | xxxxxx | xxxxxx | xxxxxxxxxxx | xxxxxxxxxxx | 3517.00 | 2433.69
xxxxxx | xxxxxx | xxxxxx | xxxxxxxxxxx | xxxxxxxxxxx | 2094.00 | 2320.46
xxxxxx | xxxxxx | xxxxxx | xxxxxxxxxxx | xxxxxxxxxxx | 1811.00 | 2193.09
等等
所以我的老板想要的只是平均值的一列。例如,如果这只有 4 个客户,那么它只会显示 2193.09(包括之前到达那里的所有计算)而不显示数千行。
总保费
2193.09
如果您有任何问题,请发表评论。我尽我所能诚实地尽力解释它......
我们试图仅以图形方式表示 1 个总保费平均值。
感谢您的帮助!
【问题讨论】:
-
所以最后一个
custnoTotalPremium(即2193.09)就是你所需要的。因为它是从第一个custno -
2193.09 不是这 4 个的平均值...那么您要的是什么?还是您的示例有缺陷? 2074.405 是……这 4 个的平均值……
-
是的。我加 1350.38 + 3517.00 + 2094.00 + 1811.00 = 2193.09
标签: sql average sql-server-2014