SELECT * FROM (SELECT IFNULL(ROUND(MAX(TA.WIND_PCS_TODAY_DEVL) / 1000, 3), 0) AS TODAY_DEVL, IFNULL(ROUND(MAX(TA.MAX_WIND_PCS_TODAY_DEVL) / 1000, 3), 0) AS MAX_TODAY_DEVL FROM (SELECT MAX(CAST(T1.WIND_PCS_TODAY_DEVL AS SIGNED)) AS WIND_PCS_TODAY_DEVL, CAST(MAX(T1.WIND_PCS_TODAY_DEVL)- (SELECT MAX(S1.WIND_PCS_TODAY_DEVL) FROM tbl_wind_pcs S1 WHERE DATE_FORMAT(S1.WIND_PCS_REG_DATE, '%Y-%m-%d %H') = DATE_FORMAT(DATE_ADD(T1.WIND_PCS_REG_DATE,interval -1 hour), '%Y-%m-%d %H') GROUP BY DATE_FORMAT(S1.WIND_PCS_REG_DATE, '%Y-%m-%d %H') ) AS SIGNED) AS MAX_WIND_PCS_TODAY_DEVL, DATE_FORMAT(T1.WIND_PCS_REG_DATE, '%Y-%m-%d %H') FROM tbl_wind_pcs T1 WHERE T1.WIND_PCS_REG_DATE >= CURDATE() AND DATE_FORMAT(T1.WIND_PCS_REG_DATE, '%H') <> '00' GROUP BY DATE_FORMAT(T1.WIND_PCS_REG_DATE, '%Y-%m-%d %H') ) AS TA ) AS TTA, (SELECT ROUND(SUM(MONTH_DEVL) / 1000, 3) AS MONTH_DEVL, ROUND(MAX(MONTH_DEVL) / 1000, 3) AS MAX_MONTH_DEVL, ROUND(MAX(TOTAL_DEVL) / 1000000, 3) AS TOTAL_DEVL FROM (SELECT MAX(CAST(T1.WIND_PCS_TODAY_DEVL AS SIGNED)) AS MONTH_DEVL, MAX(CAST(T1.WIND_PCS_TOTAL_DEVL AS SIGNED)) AS TOTAL_DEVL, DATE_FORMAT(T1.WIND_PCS_REG_DATE, '%Y-%m-%d') FROM tbl_wind_pcs T1 WHERE DATE_FORMAT(T1.WIND_PCS_REG_DATE, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m') AND DATE_FORMAT(T1.WIND_PCS_REG_DATE, '%H') <> '00' GROUP BY DATE_FORMAT(T1.WIND_PCS_REG_DATE, '%Y-%m-%d') ) TB ) AS TTB, (SELECT IFNULL((SELECT ROUND((MAX(T1.WIND_PCS_TOTAL_DEVL)-MIN(S1.WIND_PCS_TOTAL_DEVL)) / 1000, 2) FROM tbl_wind_pcs S1 WHERE S1.WIND_PCS_REG_DATE >= DATE_ADD(NOW(), INTERVAL -1 HOUR) ), 0)AS CURRENT_OUTPUT FROM tbl_wind_pcs T1 ) AS TTC
안녕하세요
DB 초보 개발자입니다.
쿼리가 너무 느립니다 데이터는 40만건정도있는데...ㅠㅠ
17초 걸리네요 ㅠ
현재 쿼리입니다..
부탁드리겠습니다.