그룹중에서 작은값의 row값 가져오기 0 1 1,737

by 나그네 [PL/SQL] [2015.02.09 14:53:38]


표에서 노랗게 색깔로 된 데이타 Row만 뽑고 싶습니다.

기준은 A값에 따른 B 칼럼의 값이 가장 적은 Row에 해당하는 값들을 추출 하고 싶습니다.(A칼럼이 그룹이 되어서

B칼럼 값이 가장 적은 값입니다.)

노란색으로 칠해진 값만 추출 할수 있는 방법이 있을까요?

추출 데이타..

 111   1   A   가

 222  4   D   나

333  7    G   다

식으로 나오됩니다.

아래 표 처럼 테이블은 하나 입니다.

goup by 해서 b를 min해서 하는 방식 말고 없을까요?

 

A B C D
111 1 A
111 2 B B
111 3 C C
222 4 D
222 5 E E
222 6 F F
333 7 G
333 8 H H

 

 

by 아발란체 [2015.02.09 15:16:09]

윈도우 함수를 써서 A그룹별 B순위를 매기고 밖에서 그룹별 순위가 1인 것을 취하는 식으로 하면 될 것 같습니다.

SELECT
     *
FROM 
     (SELECT T.*, RANK() OVER(PARTITION BY A ORDER BY B) AS rk FROM TABLE_NAME)
WHERE
     rk = 1

 

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