row 를 컬럼으로 변경하는 방법 질문드립니다. 0 2 2,503

by 쿼리back [2013.09.16 15:33:30]


 안녕하세요. 쿼리초보라, 뭐 이런걸 질문하지 ? 하실지 모르지만 ㅠ 
도저히 감이 안잡혀 질문드립니다.


이름        |    금액    |      월
 홍길동      1000            1
 홍길동        500            2
 홍길동       2000           3
 성춘향        500            1
 성춘향       1000            2



위의 데이터를

이름     |  1월    |   2월     |   3월
홍길동    1000      500        2000
성춘향      500     1000

으로 나타낼 수 있을까요? 
by 아린 [2013.09.16 15:58:06]
WITH t(이름, 금액, 월) AS(
SELECT '홍길동', 1000, 1 FROM dual UNION ALL
SELECT '홍길동',  500, 2 FROM dual UNION ALL
SELECT '홍길동', 2000, 3 FROM dual UNION ALL
SELECT '성춘향',  500, 1 FROM dual UNION ALL
SELECT '성춘향', 1000, 2 FROM dual
)
SELECT 이름
     , SUM(DECODE(월, 1, 금액)) 월1 
     , SUM(DECODE(월, 2, 금액)) 월2
     , SUM(DECODE(월, 3, 금액)) 월3
  FROM t
 GROUP BY 이름 

by 아발란체 [2013.09.16 16:00:04]
SQL 레벨로 행열을 바꾸는 방법과 ==> http://oracleclub.com/article/55193
PIVOT 함수 쓰는 방법과 ==> http://oracleclub.com/lecture/2214
다이나믹 쿼리를 쓰는 방법이 있습니다. ==> http://oracleclub.com/lecture/1720
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입