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
운영게시판
최근게시물
MS-SQL Q&A 5430 게시물 읽기
No. 5430
통계쿼리 질문있습니다
작성자
초보초보
작성일
2009-11-02 19:53
조회수
6,128

이것저것 통계쿼리를 공부하다가 궁금해서 문의드립니다


데이터는 


아래와 같이 입력되어있습니다


날짜

학년

번호

이름

사탕

2009-10-11

1

1

25

김철수

4

2009-10-11

1

2

36

김철수2

3

2009-10-11

1

3

22

김철수3

2

2009-10-11

1

4

23

김철수4

2

2009-10-11

1

1

24

김철수5

1

2009-10-11

2

1

3

김영희1

1

2009-10-11

2

2

65

김영희2

3

2009-10-11

2

3

34

김영희3

2

2009-10-11

2

4

22

김영희4

4

2009-10-11

2

1

11

김영희5

5

2009-10-12

1

1

25

김철수

1

2009-10-12

1

2

36

김철수2

3

2009-10-12

1

3

22

김철수3

2

2009-10-12

1

4

23

김철수4

4

2009-10-12

1

1

24

김철수5

5

2009-10-14

2

1

3

김영희1

5

2009-10-14

2

2

65

김영희2

4

2009-10-14

2

3

34

김영희3

3

2009-10-14

2

4

22

김영희4

2

2009-10-14

2

1

11

김영희5

2



데이터는 날짜와 상관없이


학년 

번호

이름

사탕수

1

1

25

김철수

5

1

2

36

김철수2

6

1

3

22

김철수3

4

1

4

23

김철수4

6

1

1

24

김철수5

6

반통계

1

 

 

11

2

 

 

6

3

 

 

4

4

 

 

6

학별통계

 

 

 

37

2

1

3

김영희1

6

2

2

65

김영희2

7

2

3

34

김영희3

5

2

4

22

김영희4

6

2

1

11

김영희5

7

반통계

1

 

 

13

2

 

 

7

3

 

 

5

4

 

 

6

학년통계

 

 

 

31

총통계

 

 

 

68



위와같이 통계를 내려고 합니다 

조언좀 부탁드립니다

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

질문하신것 처럼 딱 떨어지게 나올려면 나눠서 처리하시던가 아님 인라인 뷰로 처리하시고 case문울 이용해서  처리하셔야 합니다. 

대출 비슷하게 나오게는 했는데. 똑같이 나오게 할려면 잔손이 많이 갑니다...

with test

as (

select '20091011' 날짜,'1' 학년,'1' 반,'25' 번호,'김철수' 이름,4 사탕 union all

select '20091011' 날짜,'1' 학년,'2' 반,'36' 번호,'김철수2' 이름,3 사탕 union all

select '20091011' 날짜,'1' 학년,'3' 반,'22' 번호,'김철수3' 이름,2 사탕 union all

select '20091011' 날짜,'1' 학년,'4' 반,'23' 번호,'김철수4' 이름,2 사탕 union all

select '20091011' 날짜,'1' 학년,'1' 반,'24' 번호,'김철수5' 이름,1 사탕 union all

select '20091011' 날짜,'2' 학년,'1' 반,'3' 번호,'김영희1' 이름,1 사탕 union all

select '20091011' 날짜,'2' 학년,'2' 반,'65' 번호,'김영희2' 이름,3 사탕 union all

select '20091011' 날짜,'2' 학년,'3' 반,'34' 번호,'김영희3' 이름,2 사탕 union all

select '20091011' 날짜,'2' 학년,'4' 반,'22' 번호,'김영희4' 이름,4 사탕 union all

select '20091011' 날짜,'2' 학년,'1' 반,'11' 번호,'김영희5' 이름,5 사탕 union all

select '20091012' 날짜,'1' 학년,'1' 반,'25' 번호,'김철수' 이름,1 사탕 union all

select '20091012' 날짜,'1' 학년,'2' 반,'36' 번호,'김철수2' 이름,3 사탕 union all

select '20091012' 날짜,'1' 학년,'3' 반,'22' 번호,'김철수3' 이름,2 사탕 union all

select '20091012' 날짜,'1' 학년,'4' 반,'23' 번호,'김철수4' 이름,4 사탕 union all

select '20091012' 날짜,'1' 학년,'1' 반,'24' 번호,'김철수5' 이름,5 사탕 union all

select '20091014' 날짜,'2' 학년,'1' 반,'3' 번호,'김영희1' 이름,5 사탕 union all

select '20091014' 날짜,'2' 학년,'2' 반,'65' 번호,'김영희2' 이름,4 사탕 union all

select '20091014' 날짜,'2' 학년,'3' 반,'34' 번호,'김영희3' 이름,3 사탕 union all

select '20091014' 날짜,'2' 학년,'4' 반,'22' 번호,'김영희4' 이름,2 사탕 union all

select '20091014' 날짜,'2' 학년,'1' 반,'11' 번호,'김영희5' 이름,2 사탕  )

select *

  from (

   select  학년, 반,번호,이름,sum(사탕) 수량 , 0 gb

    from test

   group by  학년, 반,번호,이름

  union all

  select case when 학년 is null then '전체' else 학년 end 학년

             , case when 반 is null then '학년' else 반 end 반

             , case when 번호 is null then '반' else 번호 end 번호

             , case when 이름 is null then '계' else 이름 end 이름

             ,  수량 , case when 학년 is null then 3 else 1 end gb

  from (

    select   학년, 반,번호,이름,sum(사탕) 수량

     from test

    group by   학년, 반,번호,이름 with rollup ) r

  where  ( r.학년 is  null or  r.반 is  null or  r.번호 is  null  )

 ) res

order by res.학년 , res.gb

지나가다가님이 2009-11-03 14:55에 작성한 댓글입니다.
이 댓글은 2009-11-03 15:01에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
5433ASP에서 쿼리문 실행 도중에 [1]
김봉달
2009-11-03
5972
5432SQL 버전은 어떤걸 설치하는게 좋을까요? [2]
조현철
2009-11-03
6071
5431xp_cmdshell 오류 [1]
SQL초보
2009-11-03
8383
5430통계쿼리 질문있습니다 [1]
초보초보
2009-11-02
6128
5429프로시저를 다른 Database나 다른 서버로 옮길려면 어떻게하죠? [1]
답답한사람
2009-11-02
5480
5428Index 설정후 Index 실행이 안되는 문의 [1]
부평맨
2009-10-30
5618
5427mssql 2005에서 데이터 내보내기 가져오기할때..
don12345
2009-10-29
5841
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다