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

Sor*_*rin 2 mysql 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
Run Code Online (Sandbox Code Playgroud)

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

我正在考虑在桌面上加入,然后找到每个跑步者的最大值和最小值,减去它们并除以运行次数 - 1.但是如何在没有任何子查询的情况下组合所有这些?

Ric*_*iwi 5

Sorin,公平地说,你已经有了答案 - (max-min)/(count-1)确实是正确的,没有详细说明跑步的距离.

select runner, datediff(max(ran),min(ran)) / (count(ran)-1)
from running
group by runner;
Run Code Online (Sandbox Code Playgroud)

注意:MySQL将转为X / 0(对于只有一个跑步者记录的地方)为NULL,因为它不可分辨为0.