Oracle에서 사용하던 SQL문이 있는데, 이를 Mysql에서 사용할 수 있게 변환하려고 합니다.
to_date에 관한 부분은 수정을 했는데... 문제는 ratio_to_report와 partition by입니다. Mysql에는 두 기능이 없다더군요...
어떻게 Mysql에서 Oracle의 ratio_to_report와 partition by의 기능을 하는 SQL문을 작성할 수 있을까요?
SQL문은 다음과 같습니다.
SELECT A.IP, A.RAT/4 + B.RAT FROM (SELECT IP, CONTINENT, COUNT(*) CNT, RATIO_TO_REPORT(COUNT(*)) OVER (PARTITION BY IP) RAT FROM LOG WHERE LOG_TIME BETWEEN STR_TO_DATE('2016/03/01 07:00', '%Y/%m/%d %H:%i') AND STR_TO_DATE('2016/03/02 06:59', '%Y/%m/%d %H:%i') GROUP BY IP, CONTINENT ORDER BY IP, CONTINENT) AS A, (SELECT IP, COUNTRY, COUNT(*) CNT, RATIO_TO_REPORT(COUNT(*)) OVER (PARTITION BY IP) RAT FROM LOG WHERE LOG_TIME BETWEEN STR_TO_DATE('2016/03/01 07:00', '%Y/%m/%d %H:%i') AND STR_TO_DATE('2016/03/02 06:59', '%Y/%m/%d %H:%i') GROUP BY IP, COUNTRY ORDER BY IP, COUNTRY) AS B WHERE A.IP = B.IP