2017-08-10 155 views
0

我期待生成一个表格,显示每个客户类型的推荐和约会之间的平均天数。我目前的SQL代码如下所示:按客户类型划分的平均天数

select CustomerID, CustomerType, ReferralDate, AppointmentDate, 
     Datediff(d, ReferralDate, AppointmentDate) as [Ref to App (Days)] 
From Referrals 

上面的代码会生成每个客户从推荐到约会的天数列表。我需要的是每个CustomerType一行(我的数据库中目前有7个客户类型),然后是一个名为[从引用到应用的平均天数]的字段。这会给我留下七行,每行都包含从推荐到约会的平均天数。

我知道我可以使用AVG功能,但我似乎无法让它按我想要的方式工作。我需要使用的总和将如下所示:(每个CustomerType的总天数)/(每个CustomerType的总CustomerID)=每个客户类型的平均天数

有没有人有任何建议?

+1

添加一些示例表格数据和预期结果 - 作为格式化文本。还标记你正在使用的dbms。 – jarlh

回答

1

我觉得这个查询应该做你想要什么:

select r.CustomerType, 
     avg(1.0 * Datediff(day, r.ReferralDate, r.AppointmentDate)) as [Ref to App (Days)] 
from Referrals r 
group by r.CustomerType; 

基本上,你只需要一个group by和删除无关列。

+0

谢谢Gordon Linoff,这个作品完美!我不习惯在SQL中使用平均值 - 我通常会将它们用于excel。我非常感谢帮助。 – Jimmy