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 39272 게시물 읽기
No. 39272
여러개의 레코드를 하나로 그룹바이하면서 합칠수있나요?
작성자
김주환(pai486)
작성일
2012-02-07 16:47
조회수
4,715

 symd 제일작은 일자,,,,eymd 제일 큰일자로 해서 svcalt 를 글자를 합쳐서 한줄로 나오게 가능할까요???

위에 그림의 내용이 아래 그림처럼 되어야 합니다.

eymd 일자(201001)가 다음레코드 symd일랑 같으면 svcalt를 합쳐주는 겁니다.

데이타는 일자별 뿌려줘야 하지만 합칠땐 201105 이런씩의 월까지 그룹을 줘야 합니다.

 

select     
                         '20101104' as sYmd      /*     수혜시작일자  */
                        ,'20110503' as eYmd     /*     수혜종료일자  */
                        ,'고용창출'    as svcNm    /*     타이틀(분류)  */
                        ,'광고옵션'     as svcNmOp    /*    타이틀(상태 - 옵션)    */
                        ,'<li>'||'채용(자바2명)'||'</li>'     as svcAlt    /*    ALT    */
                from    dual
                union all
                select     
                         '20110520' as sYmd      /*     수혜시작일자  */
                        ,'20110710' as eYmd     /*     수혜종료일자  */
                        ,'고용창출'    as svcNm    /*     타이틀(분류)  */
                        ,'광고옵션'     as svcNmOp    /*    타이틀(상태 - 옵션)    */
                        ,'<li>'||'상실(자바/비자발) : 4명/2명'||'</li>'     as svcAlt    /*    ALT    */
                from    dual
                union all
                select     
                         '20110712' as sYmd      /*     수혜시작일자  */
                        ,'20111010' as eYmd     /*     수혜종료일자  */
                        ,'고용창출'    as svcNm    /*     타이틀(분류)  */
                        ,'광고옵션'     as svcNmOp    /*    타이틀(상태 - 옵션)    */
                        ,'<li>'||'상실(자바/비자발) : 111명'||'</li>'     as svcAlt    /*    ALT    */
                from    dual
                union all
                select     
                         '20120101' as sYmd      /*     수혜시작일자  */
                        ,'20120510' as eYmd     /*     수혜종료일자  */
                        ,'고용창출'    as svcNm    /*     타이틀(분류)  */
                        ,'광고옵션'     as svcNmOp    /*    타이틀(상태 - 옵션)    */
                        ,'<li>'||'기타(옵션) : 5명'||'</li>'     as svcAlt    /*    ALT    */
                from    dual

 

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

SELECT svcnm
     , svcnmop
     , MIN(symd) symd
     , MIN(eymd) eymd
     , LISTAGG(svcalt) WITHIN GROUP(ORDER BY symd) svcalt
  FROM (
        SELECT symd
             , eymd
             , svcnm
             , svcnmop
             , svcalt
             , SUM(flag) OVER(PARTITION BY svcnm, svcnmop ORDER BY symd) gb
          FROM (
                SELECT symd
                     , eymd
                     , svcnm
                     , svcnmop
                     , svcalt
                     , DECODE(SUBSTR(symd, 1, 6)
                     , LAG(SUBSTR(eymd, 1, 6))
                       OVER(PARTITION BY svcnm, svcnmop ORDER BY symd)
                     , 0, 1) flag
                  FROM t
                )
        )
 GROUP BY svcnm, svcnmop, gb
;

마농(manon94)님이 2012-02-08 10:50에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
39275숫자 정렬 [2]
ohyouknow
2012-02-08
3451
39274모든 파일이 있을 경우 복구가 가능 한지요?
qprk
2012-02-08
3491
39273고수님들께 조언 부탁 드리겠습니다. [4]
박정우
2012-02-08
4251
39272여러개의 레코드를 하나로 그룹바이하면서 합칠수있나요? [1]
김주환
2012-02-07
4715
39270일별 가용율 통계 작업 도움 부탁 드립니다,(날자 분할) [2]
구상모
2012-02-06
4419
39269혹시..이런거 가능할까요??? [1]
일쌍다반사
2012-02-06
3740
3926810g 관련 CPU 100% 차는 현상입니다.ㅠㅠ [1]
지훈
2012-02-06
4004
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다