앙되요

PARTITION BY를 써보자 본문

sql

PARTITION BY를 써보자

앙되요 2011. 6. 21. 17:09
SELECT ct_no, row_Number()OVER(PARTITION BY  ct_no ORDER BY ct_no) aa  from T_STUF_I

요렇게 하면

저기 row_number()를 통해 row 넘버를 ct_no를 오더바이 하여 ct_no별 row number를 매겨서 화면에 보여준다. 

실행
        ct_no                aa
1 ABCDEFGHI00 1
2 ABCDEFGHI00 2
3 ABCDEFGHI00 3
4 AH0010P001A 1
5 AMFU8569316 1
6 AMFU8569316 2
7 AMFU8569316 3
8 AMFU8569316 4
9 AMFU8569316 5
 
잘써먹으면 좋다.

실제로 써먹은 곳은

COUNT(B.CT_NO) OVER(PARTITION BY B.CT_NO ,B.STUF_DT)  CASE_CNT     

이렇게 화면에 있는 case_no의 카운트를 구하고 싶어서

저렇게 만들어 줬더
         ct_no                                                                                case_no  
CASE_CNT     
1 ABCDEFGHI00 ZZD-F99999 20110617 EXM1B5I032 DA3698 1
2 AH0010P001A                 20110621 EXM1B6J023 AH0010 1
3 BSIU9207275 ZZD-F99999 20110615 EXM1B6ZA         AF0007 3
4 BSIU9207275 ZZD-F99999 20110615 EXM1B6ZA    AH0002 3
5 BSIU9207275 ZZD-F99999 20110615 EXM1B6ZA   AJ0001 3

이렇게 ct_no별로 case_no의 count가 구해진다.