Pokud je vaše tabulka t a sloupec časového razítka je ts a chcete odpověď v sekundách:
SELECT TIMESTAMPDIFF(SECOND, MIN(ts), MAX(ts) )
/
(COUNT(DISTINCT(ts)) -1)
FROM t
U velkých stolů to bude míle rychlejší, protože nemá n-squared JOIN
To používá roztomilý matematický trik, který pomáhá s tímto problémem. Problém duplikátů prozatím ignorujte. Průměrný časový rozdíl mezi po sobě jdoucími řádky je rozdíl mezi prvním a posledním časovým razítkem dělený počtem řádků -1.
Důkaz:Průměrná vzdálenost mezi po sobě jdoucími řadami je součet vzdálenosti mezi po sobě jdoucími řadami dělený počtem po sobě jdoucích řádků. Ale součet rozdílu mezi po sobě jdoucími řádky je pouze vzdálenost mezi prvním řádkem a posledním řádkem (za předpokladu, že jsou seřazeny podle časového razítka). A počet po sobě jdoucích řádků je celkový počet řádků -1.
Pak už jen upravíme časová razítka tak, aby byla odlišná.