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 39423 게시물 읽기
No. 39423
sql 쿼리 문의 좀 드립니다.
작성자
하동우(cookatrice)
작성일
2012-04-27 09:37
조회수
4,594

쿼리 질문 드립니다....

 

기본 테이블에서 쿼리를 돌려 아래와 같은 데이터셋을 얻었습니다.

학년  학급 종류 개수
1학년 A a 1
1학년 B a 3
1학년 C c 4
2학년 D a 3
2학년 D b 4
3학년 E b 5

 

하지만 제가 원하는 데이터 셋의 형태는 아래와 같습니다. 

학년  학급 종류
a b c
1학년 A 1 0 0
1학년 B 3 0 0
1학년 C 0 0 4
2학년 D 3 4 0
3학년 E 0 5 0

즉, 학년, 학급별로, 종류인 a,b,c의 값들을 한 행의 데이터셋으로 불러 오고 싶은데...

원래 DB담당이 아니고, 딴쪽이라....DB하시는분이 지금 안계서서...ㅠㅠ

어설프게 짜 보아도 잘 모르겠네요...

 

저렇게 표현할 수 있는 방법좀 알 수 있을까요?

 

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

아...이것이 맞는지 모르겠지만..

자문 자답입니다...^^;;

select 학년, 학급, sum(aa) a, sum(bb) b, sum(cc) c
from 
(   SELECT 학년,
         학급,
         CASE WHEN 종류 = 'a' THEN count(*) END AS aa,
         CASE WHEN 종류 = 'b' THEN count(*) END AS bb,        
         CASE WHEN 종류 = 'c' THEN count(*) END AS cc
    FROM table
 group by 학년, 학급, 종류) A
 group by A.학년, A.학급
 order by A.학년, A.학급

혹시나 더 좋은 방법이 있는지도 궁금합니다...

아님...이렇게 쓰면 될까요?

하동우(cookatrice)님이 2012-04-27 09:58에 작성한 댓글입니다.

-- 11G PIVOT --
SELECT *
  FROM t
 PIVOT (COUNT(*) FOR 종류 IN ('a' a, 'b' b, 'c' c))
 ORDER BY 학년, 학급
;


-- 10G 이하 --
SELECT 학년, 학급
     , COUNT(DECODE(종류, 'a', 1)) a
     , COUNT(DECODE(종류, 'b', 1)) b
     , COUNT(DECODE(종류, 'c', 1)) c
  FROM t
 GROUP BY 학년, 학급
 
ORDER BY 학년, 학급
;

마농(manon94)님이 2012-04-27 13:39에 작성한 댓글입니다.
이 댓글은 2012-04-27 13:39에 마지막으로 수정되었습니다.

마농님 감사 합니다....^^

하동우(cookatrice)님이 2012-04-27 15:45에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
39427행을 열로 변경하기 ㅠㅠ [1]
포스
2012-04-30
5641
39426sql 쿼리 도움좀( 두가지 조건 만족하는 쿼리) [1]
초보
2012-04-29
4116
39425최소 금액인 코드와 금액 구하기 [1]
1234
2012-04-27
4704
39423sql 쿼리 문의 좀 드립니다. [3]
하동우
2012-04-27
4594
39422최근 데이터를 가져와서 정렬 하는 쿼리 문의 [2]
정용석
2012-04-27
4549
39421두개의 조건을 만족하는 값을 출력하는 sql 부탁드려요 ;; [2]
박철우이
2012-04-26
3993
39420DB 모델링 관련 (부모와 자식 테이블) [1]
양희종
2012-04-26
5357
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.022초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다