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 6309 게시물 읽기
No. 6309
select 쿼리 질문입니다.
작성자
유재영(eugene0328)
작성일
2012-01-13 11:19
조회수
7,387

테이블은

학년  이름    수학  국어  과학
 1      홍길동  20      10      20
 1      임꺽정  10      20      40
 2      유관순  10      10      40

이렇게 데이터가 입력돼잇습니다

저는 이때까지 쿼리 결과를...
select 컬럼,컬럼,컬럼 from 테이블 where 조건~
이런식으로 셀렉트해서

컬럼  컬럼  컬럼  컬럼  컬럼
데이타 데이타 데이타 데이타 데이타
데이타 데이타 데이타 데이타 데이타

이런식으로박에 안해봣고 배운것도 저런거밖에 없는데요..

쿼리결과를 두줄로 나타낼려면 어떻게 해야하나요 ?

아래처럼 이런식으로......


학년                      수학 국어 과학
 1          합계  120            30  30    60
  1        평균  ?                여기도1학년평균
 2          합계  60            10  10    40
 2          평균  ?              여기는 2학년 평균


위와같이 학년별로다가 합계랑 평균을 구하는건데요
쿼리결과를 2줄로 출력할려면 어떻게 해야하는건가요 ?
참고로 DB 는 ms-sql 쓰고잇습니다.

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

 with t ( y, n, m, k, s )

as
(
select 1, 'a', 20, 10, 20
union all
select 1, 'b', 10, 20, 40
union all
/*
select 1, 'c', 10, 20, null
union all
*/
select 2, 'd', 10, 10, 40
),
mul ( kind )
as
(
select N'합계'
union all
select N'평균'
)
 
select y, kind
, case mul.kind when N'합계' then totsum else totavg end as tot
, case mul.kind when N'합계' then sm else avm end as m
, case mul.kind when N'합계' then sk else avk end as k
, case mul.kind when N'합계' then ss else avs end as s
from (
select y, SUM( m ) as sm, SUM( k ) as sk, SUM( s ) as ss
, SUM( m ) + SUM( k ) + SUM( s ) as totsum
,AVG( m ) as avm, AVG( k ) as avk, AVG( s ) as avs
--, ( SUM( m ) + SUM( k ) + SUM( s ) ) / ( COUNT(*) * 3 ) AS incorrectAvgWhenNullExists
, ( SUM( m ) + SUM( k ) + SUM( s ) ) / ( COUNT(m) + COUNT(k) + COUNT(s) ) as totavg
from t
group by y
) as aa
cross join mul
order by y, kind desc
우욱님이 2012-01-13 12:36에 작성한 댓글입니다.
이 댓글은 2012-01-13 12:40에 마지막으로 수정되었습니다. Edit

우욱 님 답변 감사합니다.

많은 도움이 돼었습니다.

유재영님이 2012-01-13 15:34에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6313화면 배열 문제... [2]
말짝이
2012-01-18
6860
6311쿼리로 ROWSPAN 효과내기 [1]
초보
2012-01-16
6909
6310컬럼의 값을 카운트 하려면? [1]
초보자
2012-01-15
6807
6309select 쿼리 질문입니다. [2]
유재영
2012-01-13
7387
6308ms-sql 동기화 관련 질문
궁금증
2012-01-11
7271
6307[질문] 3개의 컬럼 값(숫자) 정렬하기.? [2]
김현기
2012-01-10
6897
6306sqlserver 2008 노출영역구성
박홍균
2012-01-10
8319
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다