Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak połączyć dwa wiersze i obliczyć różnicę czasu między dwoma wartościami znaczników czasu w MySQL?

Uważam, że może to być prostszy sposób na osiągnięcie celu:

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

Powinno działać znacznie szybciej, ponieważ eliminuje jedno podzapytanie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak radzić sobie z akcentami i dziwnymi znakami w bazie danych?

  2. Dostosowanie do domyślnego ustawienia strefy czasowej w RDS

  3. jak wyczyścić plik konfiguracyjny pamięci podręcznej Laravel Bootstrap?

  4. Łączenie warunku z dwóch kolumn mysql

  5. Podziel rozdzielaną wartość ciągu na wiersze