database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 4063 게시물 읽기
No. 4063
로그인 정보를 셀렉트하는중............................도움부탁드립니다.
작성자
박인규(maingyo)
작성일
2008-02-15 14:35
조회수
3,247

테이블 자료는 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이란 숫자만 나오네용.

 

제가 만든 식이 잘못되었나요?

그렇다면 다른 식으로 접근할 수 있는지 조언 좀 부탁드리겠습니다. ^^*

이 글에 대한 댓글이 총 1건 있습니다.

select count(distinct a.user_id)
 from loginhistory as a
 left join loginhistory as b on a.user_id = b.user_id and b.version > '100'
where a.version = '100' and b.user_id is null

주변인님이 2008-02-19 17:35에 작성한 댓글입니다.
이 댓글은 2008-02-19 17:41에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
4067프로필러에 엔터값이 오면 추적이 끈겨 버려요..
정병화
2008-02-20
3302
4065MS-SQL 2005 데이타를 오라클로 이전 하는 방법 문의 입니다. [2]
우진호
2008-02-18
3787
4064더하기와 곱하기가 함꼐하는 연산에서요~ [2]
김신희
2008-02-18
6328
4063로그인 정보를 셀렉트하는중............................도움부탁드립니다. [1]
박인규
2008-02-15
3247
4062어찌해야할지 [3]
어찌
2008-02-15
3328
4060사용자 권한 설정에 관해서 질문 올립니다.
이기성
2008-02-15
3400
4059OUTER JOIN 에서 ON 조건에 관한 질문입니다. [2]
질문자
2008-02-14
4004
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다