테이블 자료는 100만건이 넘고요.
LOGINHISTORY테이블은 버젼별 로그인정보에관한것입니다.(아이디, 버젼,날짜등)
(2008년부터의 자료)
2008년부터 버젼업을 몇번 실시 하였고
그래서 버젼업을 안한 사람(최초버젼 100)의 순수한 자료를 얻고 싶어서
100으로 접속한 사람아이디중
그이상의 버젼(버젼업그레이드한 사람)으로도 접속한 사람의 아이디를 포함시키지 않는
(쉽게 말해 2008년 이후로 100으로 접속했고 버젼업그레이드후 101로도 접속했으면 이사람의 현재
버젼은 101이므로 버젼100인사람 추출시 제외를 하는 것 입니다)
조건을 만들고 싶어서 했는데
SELECT COUNT(*) FROM
(
SELECT DISTINCT USER_ID
FROM LOGINHISTORY
WHERE VERSION = '100'
AND USER_ID NOT IN
(
SELECT USER_ID
FROM LOGINHISTORY
WHERE VERSION > '100'
)
)
이런식으로 했는데 데이터가 나오질 않네요 자료가 많아서 그런가 1분을 넘겨버립니다.
운영중인 DB라 조금 조심스럽네요 NOT EXISTS로도 해보았는데 0이란 숫자만 나오네용.
제가 만든 식이 잘못되었나요?
그렇다면 다른 식으로 접근할 수 있는지 조언 좀 부탁드리겠습니다. ^^* |