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

2つの行を組み合わせて、MySQLの2つのタイムスタンプ値間の時間差を計算するにはどうすればよいですか?

    これはあなたの目標を達成するためのより簡単な方法かもしれないと私は信じています:

    SELECT
        start_log.name,
        MAX(start_log.ts) AS start_time,
        end_log.ts AS end_time,
        TIMEDIFF(MAX(start_log.ts), end_log.ts)
    FROM
        log AS start_log
    INNER JOIN
        log AS end_log ON (
                start_log.name = end_log.name
            AND
                end_log.ts > start_log.ts)
    WHERE start_log.eventtype = 'start'
    AND end_log.eventtype = 'stop'
    GROUP BY start_log.name
    

    1つのサブクエリがなくなるため、かなり高速に実行されるはずです。



    1. 疑わしいモードの問題でスタックしているSQLServerデータベースを効率的に解決する

    2. OracleSQL句の評価順序

    3. 関係に基づいて1つのレコードに対して複数のレコードを取得するにはどうすればよいですか?

    4. SQLServerにログインできません+SQLServer認証+エラー:18456