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
운영게시판
최근게시물
Oracle Q&A 40277 게시물 읽기
No. 40277
sql 질문입니다.
작성자
노브
작성일
2013-10-08 12:01
조회수
5,748

SELECT a.code, a.id, count(distinct(a.user)) this_count

, max(case when a.month = '201309' then a.user else 0 end) last_user

FROM a

WHERE a.month between '201105' and '201309'

GROUP BY a.code, a.id

having count(distinct(a.user)) > 1

 

특정기간내에 코드와 아이디로 group by 해서 유저의 카운트를 구하는 쿼리인데

max절이 들어가니까 엄청나게 속도가 느려지네요..

마지막달의 유저값을 구하기 위해 넣은 건데 다른 방법 있는지 알려주시면 감사하겠습니다.

 

그리고, 201105 부터 201308 까지해서 month 값이 null 이 아닌 데이터중에서 가장 최근달의 user값을

구하는 위와 비슷한 sql 이 하나 더 필요합니다.

 

키는 month, code, id 입니다.

 

감사합니다.

[Top]
No.
제목
작성자
작성일
조회
40280쿼리 결과가 왜 여러줄로 나오는지 도통 모르겠습니다.ㅠ_ㅠ.. [2]
김재익
2013-10-15
5743
40279날짜 계산 관련 리터럴 에러.. [2]
디비하수
2013-10-08
7687
40278Exp->Imp TableSpace 문제.
처음처럼
2013-10-08
5687
40277sql 질문입니다.
노브
2013-10-08
5748
40275오렌지 쿼리시 특정 테이블 쿼리하면 다운되는데요
바람
2013-10-04
5699
40274합계 질문드립니다 [1]
질럿
2013-10-04
5404
40273Oracle 9i에서의 아카이브로그 파일 생성주기조정 [2]
이태훈
2013-10-02
6203
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다