오라클 쿼리 질문 입니다(최근 3개월간의 사용자 count와 3개월동안 로그인하지 않은 사용자를 구하는 쿼리) 0 2 5,189

by dikidogki 오라클 쿼리 조인 count join [2017.07.26 10:36:11]


최근 3개월간의 접속 사용자 count와 3개월동안 로그인하지 않은 사용자를 구하는 쿼리를 만들고자 합니다.

user 정보 있는 테이블(A) 과 , 접속 로그인 날짜가 있는 데이블(B) 이 달라서 두 테이블을 조인하여 데이터를 구하려고 합니다.

userid 값은 동일하게 있고, A테이블에서 user email 데이터도 함께 추출 하려고 합니다.

 

A 테이블 ( user 테이블)

userid, user_email

B테이블 (user 로그인 히스토리 테이블)

userid, login_date

 

select userid, count(userid) from B

where login_date between to_date('20170425','yyyymmdd') and to_date('20170725','yyyymmdd')

group by userid

이렇게 B테이블 (로그인이력 테이블)로 최근 3개월의 로그인 사용자의 로그인 횟수 까지는 구할 수 있는데, 여기에서 사용자 이메일을 덧 붙이고 싶습니다.

그리고, 3개월 이내에 로그인을 하지 않는 사용자의 아이디, 이메일도 알고 싶습니다.

by 마농 [2017.07.26 11:18:29]
SELECT a.userid
     , a.user_email
     , NVL(b.cnt, 0) cnt
  FROM a
     , (SELECT userid
             , COUNT(*) cnt
          FROM b
         WHERE login_date >= ADD_MONTHS(TRUNC(sysdate), -3)
         GROUP BY userid
        ) b
 WHERE a.userid = b.userid(+)
;

 


by dikidogki [2017.07.26 14:00:03]

정말 감사합니다~~!! 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입