Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mysql join avec time matching

Essayez ceci :

SELECT j.id, j.starttime, j.endtime, j.jobname, c.cpuusage
FROM
(
    SELECT j.id, j.starttime, j.endtime, j.jobname, MAX(c.usagetime) AS usagetime
    FROM jobinfo AS j
    LEFT JOIN cpuinfo AS c
    ON c.usagetime <= j.starttime
    GROUP BY j.id
) AS j
JOIN cpuinfo AS c
ON j.usagetime = c.usagetime

Cela donne la sortie que vous vouliez. Il trouve la valeur la plus récente de cpuusage avant l'heure de début de chaque travail. Il ne gère pas les changements d'utilisation du processeur pendant l'exécution du travail.