テーブルがtで、タイムスタンプ列がtsで、秒単位で回答が必要な場合:
SELECT TIMESTAMPDIFF(SECOND, MIN(ts), MAX(ts) )
/
(COUNT(DISTINCT(ts)) -1)
FROM t
これは、n-squared JOINがないため、大きなテーブルの場合ははるかに高速になります
これは、この問題に役立つかわいい数学的トリックを使用しています。今のところ、重複の問題は無視してください。連続する行間の平均時間差は、最初のタイムスタンプと最後のタイムスタンプの差を行数-1で割ったものです。
証明:連続する行間の平均距離は、連続する行間の距離の合計を連続する行の数で割ったものです。ただし、連続する行間の差の合計は、最初の行と最後の行の間の距離にすぎません(タイムスタンプでソートされていると仮定)。そして、連続する行の数は、行の総数-1です。
次に、タイムスタンプを区別できるように調整します。