SQL:查找每个跑步者的平均跑步天数

所以如果我们给出了下面的表格:

runner  ran
Carol   2011-02-01
Alice   2011-02-01
Bob     2011-02-01
Carol   2011-02-02
Bob     2011-02-02
Bob     2011-02-03
Bob     2011-02-04
Carol   2011-02-07
Alice   2011-02-08

我如何编写一个查询(没有任何子查询)来查找每个跑步者在跑步之间等待的平均天数(即,Carol等待1天,然后是5,所以平均值是3; Bob每天跑步; Alice等待7天) ?

我正在考虑在桌面上加入一个连接,然后为每个跑步者找到最大值和最小值,然后将其减去并除以运行次数 - 1.但是,如何将所有这些无需子查询结合起来?


索林,公平地说,你已经有了答案 - (max-min)/(count-1)的确是正确的,而不会涉及到跑步距离有多远的细节。

select runner, datediff(max(ran),min(ran)) / (count(ran)-1)
from running
group by runner;

注意:MySQL会将X / 0 (对于只有一个跑步者记录的地方)变成NULL,因为它不可变为0。

链接地址: http://www.djcxy.com/p/31823.html

上一篇: SQL: Finding the average number of days between runs for each runners

下一篇: TFS API 2010: Track a file across all branches