행 합치기 0 2 147

by 쥬발자 [Oracle 기초] 오라클 쿼리 [2022.01.14 14:52:27]


캡처.PNG (8,495Bytes)

사진과 같이 이름과 종류코드만 다르고 다른건 다 같은 것을

코드가 제일큰걸 기준으로 합치고 싶은데 가능할까요??

by 뉴비디비 [2022.01.15 18:57:22]
-- 합치는게 아니라 종류코드가 제일 큰 행을 뽑으면 될꺼 같아요.

WITH A( 이름, 종류코드, 용도, 종류, 구입일) as (
    SELECT '노란파프리카', '100', '볶음', '채소', '2022-01-01' FROM DUAL UNION ALL 
    SELECT '초록파프리카', '101', '볶음', '채소', '2022-01-01' FROM DUAL UNION ALL 
    SELECT '파프리카',    '102', '볶음', '채소', '2022-01-01' FROM DUAL
)
SELECT * FROM (
    SELECT 
        A.*
        , ROW_NUMBER() OVER(PARTITION BY 용도, 종류, 구입일 ORDER BY 종류코드 DESC ) RN 
    FROM A
) TBL
WHERE RN = 1

 


by 마농 [2022.01.17 10:20:40]
-- 1. 가져와야 할 항목이 많은 경우 : Row_number
-- 2. 가져와야 할 항목이 적은 경우 : KEEP
SELECT MAX(이름) KEEP(DENSE_RANK LAST ORDER BY 종류코드) 이름
     , MAX(종류코드) 종류코드
     , 용도, 종류, 구입일
  FROM a
 GROUP BY 용도, 종류, 구입일
;

 

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