Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để kết hợp hai hàng và tính toán chênh lệch thời gian giữa hai giá trị dấu thời gian trong MySQL?

Tôi tin rằng đây có thể là một cách đơn giản hơn để đạt được mục tiêu của bạn:

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

Nó sẽ chạy nhanh hơn đáng kể vì nó loại bỏ một truy vấn con.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CẬP NHẬT MYSQL PHP nếu Tồn tại hoặc CHÈN nếu không?

  2. BIGINT (8) có phải là số nguyên lớn nhất mà MySQL có thể lưu trữ không?

  3. Tại sao kết quả của `select 'a' =0;` 1?

  4. MySQL INTERVAL Mins

  5. Chuyển đổi tem DateTime của MySql thành định dạng Ngày của JavaScript