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 37892 게시물 읽기
No. 37892
max 쿼리
작성자
mmm
작성일
2010-08-24 17:58
조회수
3,044

사번     년수          등급

a1         10              10

a1          10             30

a1            5              10

 

위와같은 테이블에서 년수가 제일 크고 등급이 가장 좋은(여기서는 a1)을 추출하는 쿼리 부탁드립니다.

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

with t as (
select 'a1' sabun,  10 yr, '10' grd from dual union all
select 'a2' sabun,  10 yr, '30' grd from dual union all
select 'a3' sabun,   5 yr, '10' grd from dual
)
select sabun
  from t
 where (yr, grd) = (select max(yr), min(grd) from t)

 

 

知音님이 2010-08-24 19:08에 작성한 댓글입니다. Edit

답변 주셔서 감사합니다.

그런데 문제는 사원데이터에서 읽어야 하므로 WITH 안에 일일히 기술하기는 어려울것 같습니다.

다시 요청드려요~~

 

mmm님이 2010-08-24 19:57에 작성한 댓글입니다. Edit

With 문은 테스트용 자료일 뿐입니다.
With문을 쓰라는게 아닙니다.
쿼리를 어떻게 작성했는지만 보시면 됩니다.


다만 요구사항이 불분명 하네요.
[년수가 제일 크고 등급이 가장 좋은 사번]을 찾는데
년수가 가장 큰게 등급도 가장 좋으면 좋겠지만 항상 그러리란 법은 없죠.
년수는 큰데 등급은 낮은경우, 등급은 높은데 년수는 낮은 경우에 어떻게 하나요?
두개 기준중에 우선되는 기준이 무었인지 확실히 해야 하겠죠.
요구사항을 다음과 같이 정리하고 답변드릴께요.
[년수가 제일 큰것중에 등급이 가장 좋은 사번]


WITH t AS
(
SELECT 'a1' sabun,  10 yr, 10 grd FROM dual
UNION ALL SELECT 'a2', 10, 30 FROM dual
UNION ALL SELECT 'a3',  5, 10 FROM dual
)
SELECT sabun, yr, grd
  FROM (SELECT sabun, yr, grd
             , RANK() OVER(ORDER BY yr DESC, grd DESC) rk
          FROM t
        )
 WHERE rk = 1
;

마농(manon94)님이 2010-08-25 08:16에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
37895오라클 쿼리문.. 질문드려요 [3]
박하나무
2010-08-25
3039
37894job등록된 프로시저의 수행상태 확인
궁금해요
2010-08-25
3062
37893특정날짜 데이터 조회하기 [1]
박주현
2010-08-24
3099
37892max 쿼리 [3]
mmm
2010-08-24
3044
37891오라클에서는 COMMIT이 여러번 호출 되도 되나요? [1]
용세중
2010-08-24
2616
37890sum을 했더니 숫자가 이상한데요 [2]
ㄴㄴ
2010-08-24
2367
37889Index Tablespace 공간 확보 방안 좀 해결해 주세요 [4]
simon
2010-08-23
2815
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다