sql >> データベース >  >> RDS >> Mysql

MySQLのレコード間に平均時間差をどのように作成しますか?

    タイムスタンプを丸められるようにするには、タイムスタンプを数値に変換する必要があります。そして、平均タイムスタンプが得られたら、それを日付に戻します。

    select device, count(*) as cnt, FROM_UNIXTIME(AVG(UNIX_TIMESTAMP(time)), '%i:%s')
    from database.table
    group by device
    having cnt>1
    order by device;
    

    注:負の時間を考慮すると、平均は明らかです。そうでない場合は、スクリプト言語(php、c#、ruby ...)を使用して計算することをお勧めします

    average := avg(ts1–ts2, ts2-ts3, ts3-ts4)
    = (ts1–ts2 + ts2-ts3 + ts3-ts4)/3
    = (ts4-ts1)/3
    

    一般化:

    average = (last entry - first entry) / (number of entries - 1)
    


    1. RANK、DENSE_RANK、およびROW_NUMBER関数間の類似点と相違点

    2. C#MySQLエラー列数が行1の値数と一致しません

    3. @JoinColumnとは何ですか?Hibernateでの使用方法

    4. Knex.js-「where」句を使用して一意のインデックスを作成するにはどうすればよいですか?