sql >> Databasteknik >  >> RDS >> Mysql

Hur kombinerar man två rader och beräknar tidsskillnaden mellan två tidsstämpelvärden i MySQL?

Jag tror att detta kan vara ett enklare sätt att nå ditt mål:

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

Det bör köras betydligt snabbare eftersom det eliminerar en underfråga.



  1. Steg för steg uppgraderingsprocess för R12.2 Upgrade Part -4 (tillämpar 12.2.x Release Update Pack)

  2. Konvertera tidsstämpel till datum i MySQL-fråga

  3. konvertera php date till mysql-format

  4. Hur man skapar ett serverlöst GraphQL API för MySQL, Postgres och Aurora