SELECT mon.MONTH(CREATED_AT), p.NAME, cnt.COUNT(*)
FROM (
        SELECT MONTH(CREATED_AT), PLACE_ID, MAX(ID)
        FROM PLACE_REVIEWS
        WHERE CREATED_AT BETWEEN '2018-01-01' AND '2018-12-31'
        GROUP BY MONTH(CREATED_AT)
    ) AS mon
LEFT JOIN PLACES AS p
ON mon.PLACE_ID = p.ID
LEFT JOIN (
    SELECT PLACE_ID, COUNT(*)
    FROM PLACE_REVIEWS
    GROUP BY PLACE_ID
) AS cnt
ON mon.PLACE_ID = cnt.PLACE_ID
ORDER BY mon.MONTH(CREATED_AT), p.NAME;

syntax checker 돌려보니까 You have an error in your SQL syntax; it seems the error is around: '*) FROM ( SELECT MONTH(CREATED_AT), PLACE_ID, MAX(ID) ' at line 4 나오는데
from 안쪽에 있는거만 빼서 돌려보면 또 에러 안뜨고
ㅅㅂ 뭘잘못한거지