현재 로그인할때마다 로그가 찍히는 table이 있습니다. 그 데이터들을 가지고 차트를 만들려고하는데
월별 데이터를 만들때, 같은 날짜에 똑같은 아이디가 여러번 들어오기에 같은 날짜에 아이디가 여러번들어와도 한번 인식하게 distinct 처리를 했는데 , 그룹을 date_list => 월별로 묶었더니
만약에 member라는 아이디가 4월1일,2일,3일 3번들어와도 1번들어온것처럼 인식됩니다.
혹시 월별로 그룹을 묶어도 일자별로 중복처리 하는 방식이 있을까요?
date_t 는 d가 2021-01-01 ~ 2030-12-31까지 있는 테이블입니다.
SELECT date_format(dt.d, '%Y-%m') as date_list, COUNT(distinct c.id) AS cnt
FROM date_t dt LEFT OUTER JOIN login_logs c on dt.d = DATE(c.reg_date)
WHERE LEFT(dt.d,7) BETWEEN '2021-05-01' AND '2022-04-25'
GROUP BY date_list
ORDER BY date_list
Comment 2
-
지영아빠
2022.04.26 03:19
-
구경하는초보
2022.04.28 12:55
이걸 말씀하시는 것 같네요
SELECT date_list
, SUM(cnt) AS cnt
FROM (SELECT date_format(dt.d, '%Y-%m') as date_list
, date_format(dt.d, '%Y-%m-%d') as date
, COUNT(distinct c.id) AS cnt
FROM date_t dt
LEFT OUTER JOIN login_logs c on dt.d = DATE(c.reg_date)
WHERE LEFT(dt.d,7) BETWEEN '2021-05-01' AND '2022-04-25'
GROUP BY date_format(dt.d, '%Y-%m'), date_format(dt.d, '%Y-%m-%d')
) a
GROUP BY date_list
ORDER BY date_list
질문자체의 이해가 ㅠ 샘플데이터와 원하는 결과가 있으면 이해가 빠를 듯하네요.
그리고 샘플데이터 쿼리문이 있으면 같이 고민해보지 않을까 싶으네요..