回到堆栈溢出时,我遇到了另一个令我头痛的问题,那就是我一直试图找到根本没有成功的底线。无论我使用avg(datediff)函数多少次。高级平均日期具有唯一ID的DIfference
我有一个SQL表,如下所示:
ID | PersonID |开始|结束
1 | 1 | 2006-03-21 00:00:00 | 2007-05-19 00:00:00 |有效
2 | 1 | 2007-05-19 00:00:00 | 2007-05-20 00:00:00 |有效
3 | 2 | 2016-08-24 00:00:00 | 2016-08-25 00:00:00 |有效
4 | 2 | 2005-08-25 00:00:00 | 2016-08-28 00:00:00 |有效
5 | 2 | 2016-08-28 00:00:00 | 2017-10-05 00:00:00 |活跃
我试图找到所有独特人的平均活跃住宿(天)。
即基于他们的EARLIEST开始日期和最新结束日期的平均天数(因为单个人ID可以具有多个活动状态)。
例如,人员ID 1,他们最早的开始日期是2006-03-21,他们的最近结束日期是2007-05-20。因此他们的逗留时间为425天。
对身份证号码2重复此操作,他们的逗留时间为407天。
对桌子上的每个人都这样做后,我想要得到平均逗留时间,以上5行的平均值为2,而唯一的人数为416.在所有行中做一个简单的datediff平均值我一个非常不准确的平均数为102.
希望这是有道理的。与往常一样,您可以给予的任何帮助非常感谢。
如果您不信任您的结果,请将datediff的结果和总分值的数量相除 – iLikeMySql
我不认为这是他想要做的。 – Binarus
@iLikeMySql感谢您查看它的非常简单的方法。 – it05jb