by 기리 [Oracle 기초] 반복값 제거 칼럼 decode oracle 11g [2018.11.08 15:25:53]
날짜 | 회사 | 상품명 | 단가 | 개수 | 가격 |
1107 | AA | a | 123 | 1 | 123 |
1108 | AA | b | 1234 | 2 | 2468 |
1108 | AA | c | 11 | 3 | 33 |
1108 | AA | d | 22 | 1 | 22 |
1107 | BB | k | 3 | 1 | 3 |
1107 | BB | g | 4 | 1 | 4 |
1108 | BB | i | 5 | 1 | 5 |
날짜 | 회사 | 상품명 | 단가 | 개수 | 가격 |
1107 | AA | a | 123 | 1 | 123 |
1108 | b | 1234 | 2 | 2468 | |
c | 11 | 3 | 33 | ||
d | 22 | 1 | 22 | ||
1107 | BB | k | 3 | 1 | 3 |
g | 4 | 1 | 4 | ||
1108 | i | 5 | 1 | 5 |
위에 날짜랑 회사값이 반복적으로 나오는걸 아래처럼 한 번만 나오고 나머지는 생략하고 싶은데 어떤 함수를 사용해야 할까요?
고수님들의 조언이 간절합니다.
-- 1. Row_number 이용 SELECT DECODE(ROW_NUMBER() OVER(PARTITION BY 회사, 날짜 ORDER BY 상품명), 1, 날짜) 날짜 , DECODE(ROW_NUMBER() OVER(PARTITION BY 회사 ORDER BY 날짜, 상품명), 1, 회사) 회사 , 상품명 , 단가 , 개수 , 가격 FROM 테이블 ; -- 2. Lag 이용 SELECT NULLIF(날짜, LAG(날짜) OVER(ORDER BY 회사, 날짜, 상품명)) 날짜 , NULLIF(회사, LAG(회사) OVER(ORDER BY 회사, 날짜, 상품명)) 회사 , 상품명 , 단가 , 개수 , 가격 FROM 테이블 ;