1분단위로 Group By 하는 것을, 5분 단위로 Group By 하게 바꿀순 없나요?
쿼리상에선 시간이 얼마 안걸리나, 워낙 데이터 량이 많아 브라우져에서 출력하는데 시간이 걸려세요
도와주세요 ㅜㅜ
참 MySQL 쿼리이며 기본 원리는 Oracle 과 다르지 않으니
가능하다면 MySQL 함수면 좋겠지만 Oracle 로 답변해 주셔도 좋습니다.
아래에서 '%Y-%m-%d %H:%i' 는 년-월-일 시:분 입니다.
인덱스는 date_time 에 걸려 있지만, 일단 인덱스까진 신경 안써도 좋거든요.
부탁드릴께요
SELECT b.part_date_time as dateTime
,b.date AS date
,b.hour AS hour
,b.minute AS minute
,b.avg_temp_peci_agent1 AS avgTempPeciAgent1
,b.avg_temp_peci_agent2 AS avgTempPeciAgent2
,b.avg_temp_system AS avgTempSystem
,b.max_temp_peci_agent1 AS maxTempPeciAgent1
,b.max_temp_peci_agent2 AS maxTempPeciAgent2
,b.max_temp_system AS maxTempSystem
,b.min_temp_peci_agent1 AS minTempPeciAgent1
,b.min_temp_peci_agent2 AS minTempPeciAgent2
,b.min_temp_system AS minTempSystem
FROM (SELECT DATE_FORMAT( a.date_time, '%Y-%m-%d %H:%i' ) AS part_date_time
,DATE_FORMAT( a.date_time, '%Y%m%d' ) AS date
,DATE_FORMAT( a.date_time, '%H' ) AS hour
,DATE_FORMAT( a.date_time, '%i' ) AS minute
,round(avg( a.temp_peci_agent1 ),1) AS avg_temp_peci_agent1
,round(avg( a.temp_peci_agent2 ),1) AS avg_temp_peci_agent2
,round(avg( a.temp_system ),1) AS avg_temp_system
,max( a.temp_peci_agent1 ) AS max_temp_peci_agent1
,max( a.temp_peci_agent2 ) AS max_temp_peci_agent2
,max( a.temp_system ) AS max_temp_system
,min( a.temp_peci_agent1 ) AS min_temp_peci_agent1
,min( a.temp_peci_agent2 ) AS min_temp_peci_agent2
,min( a.temp_system ) AS min_temp_system
FROM temperature_log c) a
GROUP BY part_date_time
ORDER BY part_date_time DESC
LIMIT 0,240
) b
짧은글 일수록 신중하게.