sql >> Database >  >> RDS >> Mysql

Hoe twee rijen combineren en het tijdsverschil tussen twee tijdstempelwaarden in MySQL berekenen?

Ik denk dat dit een eenvoudigere manier is om je doel te bereiken:

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

Het zou aanzienlijk sneller moeten werken omdat het één subquery elimineert.



  1. Kijk uit voor een tabel met nieuwe records in de sql-database

  2. Zelfstudie SQL-transacties

  3. Emuleren MySQL LIMIT-clausule in Microsoft SQL Server 2000

  4. Invoegingen van speciale tekens in PHP / Mysql worden afgekapt