쿼리를 작동시키는 데 도움이 필요하며 개념화하는 데 문제가 있습니다. 일반적으로 컴퓨터가 새로운 OS로 업그레이드하는 데 걸리는 시간을 빼고, 실패로 인한 시간 간격을 뺀 시간을 얻고 싶습니다. 테이블의경과 쿼리를 사용하여 경과 시간을 얻는 데 도움이 필요합니다.
예는 다음과 같습니다
timestamp - status
2016-07-19 14:25:59.000 Conversion In Progress
2016-07-20 07:38:20.000 Failed - 04
2016-07-26 07:15:59.000 Conversion In Progress
2016-07-26 08:50:39.000 Conversion Successful
당신은 그것을 다시 시작했다 때이 변환이 초기에 실패했을 때부터 큰 차이가하고 볼 수 있습니다. 보고 목적으로이 기간을 추가하는 것을 피하고 싶습니다. 내가 지금 사용
내 질문은 이것이다 : 로그에
SELECT ROUND(AVG((b.ts - a.ts)/60), 0)
FROM
(
SELECT mach_name, timestamp, UNIX_TIMESTAMP(timestamp)as ts FROM w10_migration_log where status = 'Conversion In Progress'
)a INNER JOIN
(
SELECT mach_name, timestamp, UNIX_TIMESTAMP(timestamp)as ts FROM w10_migration_log where status = 'Conversion Successful'
) b on a.mach_name = b.mach_name
대부분의 항목을 다루는 문제가되지 않습니다. 그게 중요할까요? 테이블 구조가 이러한 유형의 쿼리에 적합하지 않기 때문에
는 어떤 도움을 크게, 당신이 쿼리를 개념화 할 수없는 놀라운 일이 아니다
답장을 보내 주셔서 감사합니다. 귀하의 게시물은 의미가 있으며, 테이블을 만들지는 않았지만 변경 사항을 볼 수 있습니다. 관계없이 로그에 2 개 이상의 항목이 있다면 어떻게해야합니까? 우리는 5,6 + 번 실패한 기계를 가지고 있습니다. 이 시나리오에서는 작동하지 않는 것 같습니다. – spas2k
@ spas2k 무엇이 작동하지 않습니까? 시도마다 하나의 행을 제안하므로 2 또는 6 또는 20이 정확히 동일하게 작동해야합니다. – rlanvin