안녕하세요. mau를 구하면서 모바일 여부까지 같이 저장을 해서 출력을 하려고 합니다.
SELECT date_format(createdAt, '%Y-%m') AS month , count(distinct userId) , COUNT(DISTINCT CASE WHEN isMobile=1 THEN userId ELSE NULL END) AS mauMobile , COUNT(DISTINCT CASE WHEN isMobile=0 THEN userId ELSE NULL END) AS mauNonMobile FROM login_history loginHistory GROUP BY date_format(createdAt, '%Y-%m')
위 쿼리에서 구하고자 하는 것은 전체 mau와 각 날짜 별 모바일, 비모바일 mau를 출력을 하고 싶습니다.
그런데 해당 count문에서 group by문이 먹히지 않은 상태로 출력이 됩니다. over(partition by isMobile)을 해봐도
Error Code: 1235. This version of MySQL doesn't yet support '(DISTINCT ..)'
라는 오류가 뜨며 적용이 되지 않는데 더이상 진행이 되지 않아 문의를 남깁니다..ㅠㅠ
(createdAt, userId, isMobile)
2022-12-12 15:02:11.305895 1516 0
2022-12-12 15:01:11.998891 1516 0
2022-12-12 14:48:19.834645 644 0
2022-12-11 14:48:19.834645 644 1
2022-11-12 15:02:11.305895 1516 1
결과값
2022-11 1 1 0
2022-12 2 1 2