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 39670 게시물 읽기
No. 39670
쿼리 조언 부탁드립니다~~~
작성자
손님
작성일
2012-10-05 02:40ⓒ
2012-10-05 02:42ⓜ
조회수
5,062

시간  위치  이름
----------------
  1    G1    AA
  1    G1    BB
  1    G1    CC
  1    G2    DD
  1    G2    EE
  1    G2    FF
  1    G2    GG
  1    G3    HH
  1    G3    II
  1    G4    JJ
  2    G1    KK
  2    G1    LL
  2    G2    MM
  2    G2    NN
  2    G2    OO
  2    G2    PP
  2    G3    QQ
  2    G4    RR
  2    G4    SS

하나의 테이블에 이런 데이타가 들어있다고 가정합니다..
이 데이타를 아래와 같이 쿼리해 오려고 합니다~

   G1  G2  G3  G4  SUM
------------------------------------
1  AA  DD  HH  JJ   4
1  BB  EE  II           3
1  CC  FF               2
1        GG               1
2  KK  MM QQ RR  4
2  LL  NN         SS  3
2        OO               1
2         PP              1

많은 답변 부탁드립니다~~~
 

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

 WITH V AS

(
    select  '1' TM,    'G1' LOC,    'AA' NM from dual union all
    select  '1',    'G1',    'BB' from dual union all
    select  '1',    'G1',    'CC' from dual union all
    select  '1',    'G2',    'DD' from dual union all
    select  '1',    'G2',    'EE' from dual union all
    select  '1',    'G2',    'FF' from dual union all
    select  '1',    'G2',    'GG' from dual union all
    select  '1',    'G3',    'HH' from dual union all
    select  '1',    'G3',    'II' from dual union all
    select  '1',    'G4',    'JJ' from dual union all
    select  '2',    'G1',    'KK' from dual union all
    select  '2',    'G1',    'LL' from dual union all
    select  '2',    'G2',    'MM' from dual union all
    select  '2',    'G2',    'NN' from dual union all
    select  '2',    'G2',    'OO' from dual union all
    select  '2',    'G2',    'PP' from dual union all
    select  '2',    'G3',    'QQ' from dual union all
    select  '2',    'G4',    'RR' from dual union all
    select  '2',    'G4',    'SS' from dual
)
SELECT TM
     , MAX(CASE WHEN LOC = 'G1' THEN NM
                ELSE NULL
           END) G1
     , MAX(CASE WHEN LOC = 'G2' THEN NM
                ELSE NULL
           END) G2
     , MAX(CASE WHEN LOC = 'G3' THEN NM
                ELSE NULL
           END) G3
     , MAX(CASE WHEN LOC = 'G4' THEN NM
                ELSE NULL
           END) G4
     , COUNT(NM) SUM
FROM  (
        SELECT TM
             , LOC
             , NM
             , ROW_NUMBER() OVER(PARTITION BY TM, LOC ORDER BY NM) RNUM
        FROM   V
      )
GROUP BY TM, RNUM
ORDER BY TM, RNUM
 
햇살한조각님이 2012-10-05 09:30에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39673아카이브 로그 삭제 스크립트 [2]
박영조
2012-10-08
5075
39672PLSQL 작성 스타일에대해 질문드립니다.
사과나무
2012-10-05
4149
39671교재 추천 부탁드립니다. [3]
윤명철
2012-10-05
4491
39670쿼리 조언 부탁드립니다~~~ [1]
손님
2012-10-05
5062
39669쿼리(출퇴근) 구현 [1]
스님
2012-10-03
5043
39668예외적인 정렬 [1]
휴일근무
2012-10-03
5001
39667오라클 압축 해제가 안됩니다.
이관홍
2012-10-01
5714
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다