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

MySql-複数の行の時間差を計算します

    秒単位の平均間隔を取得します:

    select (to_seconds(max(job_started)) - to_seconds(min(job_started))) / (count(*) - 1) as average_interval_seconds
    from JobTable
    where date(job_started) >= '2016-07-01'
      and date(job_started) <= '2016-07-31'
    ;
    

    すべての間隔を秒単位で取得:

    select to_seconds((
      select t2.job_started
      from JobTable t2
      where t2.job_started > t1.job_started
        and date(t2.job_started) <= '2016-07-31'
      limit 1
    )) - to_seconds(t1.job_started) as interval_seconds
    from JobTable t1
    where date(t1.job_started) >= '2016-07-01'
      and date(t1.job_started) <= '2016-07-31'
      and t1.job_started <> (
        select job_started
        from JobTable
        where date(job_started) <= '2016-07-31'
        order by job_started desc
        limit 1
      )
    ;
    

    http://sqlfiddle.com/#!9/1f8dc3/2




    1. MySQLトリガーがテーブルを更新できません-エラー1442を取得します

    2. 単一のクエリを使用して複数の行を挿入するときに、挿入されたすべてのIDを取得します

    3. SQL Server 2017(データベースエンジン)の新機能

    4. PHPでMysqlデータベースの最後のフィールドを取得するにはどうすればよいですか?