Query 에서 일부 중복을 제거 하고 싶습니다. 0 2 3,264

by 바람이불면 [SQL Query] 쿼리 Query 중복 [2013.11.21 11:37:57]


안녕하세요.

아래와 같은 결과가 나오는 쿼리가 있습니다.

A    1       150      100
A    2       150      50
B    1        200     80
B    2        200     100
B    3        200     20

원하는 결과는
 
A  150  1 100
            2  50
B  200  1 80
            2 100
           3   20

이런 쿼리 결과를 받을 수 있을까요?
by 우리집아찌 [2013.11.21 11:42:04]
WITH T AS (
SELECT 'A' A,'1' B,150 C,100 D FROM DUAL UNION ALL
SELECT 'A' ,'2' ,150 ,50 FROM DUAL UNION ALL
SELECT 'B' ,'1' ,200 ,80 FROM DUAL UNION ALL
SELECT 'B' ,'2' ,200 ,100 FROM DUAL UNION ALL
SELECT 'B' ,'3' ,200 ,20 FROM DUAL )

SELECT A , B, DECODE(RN,1,C) C , D FROM 
(SELECT T.* , ROW_NUMBER() OVER(PARTITION BY A ORDER BY B) RN
FROM T )

by 홍상표 [2013.11.22 11:32:26]
WITH T AS (
SELECT 'A' A,'1' B,150 C,100 D FROM DUAL UNION ALL
SELECT 'A' ,'2' ,150 ,50 FROM DUAL UNION ALL
SELECT 'B' ,'1' ,200 ,80 FROM DUAL UNION ALL
SELECT 'B' ,'2' ,200 ,100 FROM DUAL UNION ALL
SELECT 'B' ,'3' ,200 ,20 FROM DUAL )
SELECT CASE WHEN A=(LAG(A) OVER (ORDER BY A,B)) THEN NULL ELSE A END AA
    , CASE WHEN C=(LAG(C) OVER (ORDER BY A,B)) THEN NULL ELSE C END CC
    , B
    , D    
FROM T
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입