sql >> Database teknologi >  >> RDS >> Mysql

Hvordan kombinerer man to rækker og beregner tidsforskellen mellem to tidsstempelværdier i MySQL?

Jeg tror, ​​at dette kunne være en enklere måde at nå dit mål på:

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 burde køre betydeligt hurtigere, da det eliminerer én underforespørgsel.



  1. Importer data til mysql fra oracle

  2. Dynamisk forespørgsel i MySQL

  3. bestil efter XXX sorter efter ASC eller DESC, dynamisk bestilling, mysql...

  4. Sæt første bogstav i hvert ord med stort i eksisterende tabel