Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menggabungkan dua baris dan menghitung perbedaan waktu antara dua nilai cap waktu di MySQL?

Saya yakin ini bisa menjadi cara yang lebih sederhana untuk mencapai tujuan Anda:

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

Ini akan berjalan jauh lebih cepat karena menghilangkan satu subquery.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mySQL Stored Function untuk membuat siput

  2. Masalah dengan karakter UTF-8; apa yang saya lihat bukan apa yang saya simpan

  3. Alat terbaik untuk menyinkronkan database MySQL

  4. Temukan duplikat di tabel yang sama di MySQL

  5. Bagaimana memilih sampai jumlah tercapai