다음 표가 있습니다. Exery의 경우 2,5 분 (150 초) 동안 두 개의 플랜트에 대해 하나의 레코드가 있습니다. 각 상태의 공장에서 max (datetime) 및 min (datetime)을 보여주는 결과를 얻고 싶습니다. 그러나 상태가 바뀔 때마다 새로운 라인이 있어야합니다.상태가 변경 될 때까지 동일한 상태의 행 그룹화
plant state unix_timest datetime
1 1 1452639750 2016-01-13 00:02:30
2 1 1452639750 2016-01-13 00:02:30
1 1 1452639900 2016-01-13 00:05:00
2 1 1452639900 2016-01-13 00:05:00
1 1 1452640050 2016-01-13 00:07:30
2 1 1452640050 2016-01-13 00:07:30
1 1 1452640200 2016-01-13 00:10:00
2 1 1452640200 2016-01-13 00:10:00
1 1 1452640350 2016-01-13 00:12:30
2 0 1452640350 2016-01-13 00:12:30
1 1 1452640500 2016-01-13 00:15:00
2 0 1452640500 2016-01-13 00:15:00
1 1 1452640650 2016-01-13 00:17:30
2 1 1452640650 2016-01-13 00:17:30
1 1 1452640800 2016-01-13 00:20:00
2 1 1452640800 2016-01-13 00:20:00
내 SQL 문은 다음과 같습니다
SELECT a.line, a.current_state, min(a.`datetime`) AS mindate, max(a.`datetime`) AS maxdate
FROM `bde_production`
LEFT JOIN bde_production a ON a.unix_timestamp = bde_production.unix_timestamp
LEFT JOIN bde_production b ON b.unix_timestamp = bde_production.unix_timestamp -150
GROUP BY a.line, a.current_state ORDER BY a.line, mindate
결과 : 내가 얻을하고자하는 어떤
plant current_state mindate maxdate
1 1 2016-01-13 00:02:30 2016-01-13 00:20:00
2 1 2016-01-13 00:02:30 2016-01-13 00:20:00
2 0 2016-01-13 00:12:30 2016-01-13 00:15:00
:
plant current_state mindate maxdate
1 1 2016-01-13 00:02:30 2016-01-13 00:20:00
2 1 2016-01-13 00:02:30 2016-01-13 00:10:00
2 0 2016-01-13 00:12:30 2016-01-13 00:15:00
2 1 2016-01-13 00:17:30 2016-01-13 00:20:00
감사