database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 38551 게시물 읽기
No. 38551
쿼리 질문이요 ㅠㅠ
작성자
궁금타
작성일
2011-05-13 16:05ⓒ
2011-05-13 16:05ⓜ
조회수
3,761
계획컬럼 구분컬럼 VAL VAL2
1번계획 A 1 1
1번계획 B 2 2
2번계획 A 3 3
3번계획 A 4 4
2번계획 B 5 5
2번계획 B 6 6

이런 테이블이 있을때

 

 

1번계획 A 1 1 B 2 2

2번계획 A 2 2 B 5 5

2번계획         B 6 6

3번계획 A 4 4

 

이런식으로 출력하고싶은데요 도움좀 ㅠㅠ

이 글에 대한 댓글이 총 3건 있습니다.

with t as (
     select '1번계획' pln, 'A' dv, 1 val1, 1 val2 from dual union all
     select '1번계획',  'B', 2, 2 from dual union all
     select '2번계획',  'A', 3, 3 from dual union all
     select '3번계획',  'A', 4, 4 from dual union all
     select '2번계획',  'B', 5, 5 from dual union all
     select '2번계획',  'B', 6, 6 from dual
)
select pln
     , max(case when col = 1 then dv   end) dv_1
     , max(case when col = 1 then val1 end) val1_1
     , max(case when col = 1 then val2 end) val2_1
     , max(case when col = 2 then dv   end) dv_2
     , max(case when col = 2 then val1 end) val1_2
     , max(case when col = 2 then val2 end) val2_2
  from (
         select pln
              , dv
              , val1
              , val2
              , row_number()over(partition by dv order by val1) rn
                       , case when dv = 'A' then 1 else 2 end col
           from t
     )
 group by pln, rn

知音(sunnylee72)님이 2011-05-13 16:30에 작성한 댓글입니다.

WITH t AS
(
SELECT '1번계획' c1, 'A' c2, 1 v1, 1 v2 FROM dual
UNION ALL SELECT '1번계획', 'B', 2, 2 FROM dual
UNION ALL SELECT '2번계획', 'A', 3, 3 FROM dual
UNION ALL SELECT '3번계획', 'A', 4, 4 FROM dual
UNION ALL SELECT '2번계획', 'B', 5, 5 FROM dual
UNION ALL SELECT '2번계획', 'B', 6, 6 FROM dual
)
SELECT c1
     , MIN(DECODE(c2, 'A', c2)) c2_a
     , MIN(DECODE(c2, 'A', v1)) v1_a
     , MIN(DECODE(c2, 'A', v2)) v2_a
     , MIN(DECODE(c2, 'B', c2)) c2_b
     , MIN(DECODE(c2, 'B', v1)) v1_b
     , MIN(DECODE(c2, 'B', v2)) v2_b
  FROM (
        SELECT c1, c2, v1, v2
             , ROW_NUMBER() OVER(PARTITION BY c1, c2 ORDER BY v1, v2) rn
          FROM t
        )
 GROUP BY c1, rn
 ORDER BY c1, rn
;

마농(manon94)님이 2011-05-13 16:48에 작성한 댓글입니다.

우와 정말 감사합니다.

너무 신기하네요 ㅠㅜ

궁금타님이 2011-05-13 16:50에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
38555ORACLE_HOME 을 조회할 수 있는 뷰가 있나요? [1]
이름
2011-05-17
3232
38554순번을 사용한 timestamp unique 생성. [4]
김기환
2011-05-16
7595
38552올백업 exp가 안되요.... [2]
한상원
2011-05-16
3276
38551쿼리 질문이요 ㅠㅠ [3]
궁금타
2011-05-13
3761
38550시간 정보가 들어 있는 두 칼럼의 몇 분 차이를 알고 싶습니다. [2]
초보
2011-05-12
4007
38549Ibatis에서 트렌젝션의 범위가 명확하지 않습니다. [2]
윤명철
2011-05-12
4612
38548다중컬럼 update시.... [1]
힘들어요
2011-05-12
4064
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다