Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да комбинирате два реда и да изчислите разликата във времето между две стойности на времеви отпечатъци в MySQL?

Вярвам, че това може да бъде по-прост начин да постигнете целта си:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Версията на php-mysql е в конфликт с Mysql сървъра

  2. SQL Ред на сортиране по реда, посочен в заявката

  3. PHP:mysql v mysqli v pdo

  4. Как да получите данни от миналата седмица в MySQL

  5. Текстът на бенгалски език не се показва в Unicode CSV файл