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
운영게시판
최근게시물
MySQL Q&A 28130 게시물 읽기
No. 28130
평균구하기
작성자
풍동
작성일
2009-04-02 17:19ⓒ
2009-04-02 17:20ⓜ
조회수
5,845

국어 영어 수학 과학
100 50 70 30
100 0 0 30
100 50 0 0
평균 100 50 70 30


위의 예시처럼 성적이 들어있습니다. 전과목에 대한 평균을 일괄로 처리하려고 하는데 


조건이 있습니다. 영어, 수학처럼 0점이 있는 경우는 제외하고 평균을 내려고합니다.


어떤 쿼리를 사용해야 될지 어렵습니다. 도움을 부탁드리겠습니다.

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

WHERE LEAST(`국어`,`영어`,`수학`,`과학`) != 0

하지만 속도는 모든 컬럼이 0 아님을 검사하는 구문이 더 빠를 것 같습니다.

WHERE `국어` != 0 AND ....

박현우(lqez)님이 2009-04-02 17:45에 작성한 댓글입니다.
답변 고맙습니다.

아래처럼 실행하니 평균이 안맞는것 같습니다.

SQL = "select cast(left(stu_id,3) as unsigned) as aa,avg(lang2) as bb,avg(math2) as cc,avg(eng2) as dd,avg(tamgua2) as ee,avg(tamgub2) as ff,avg(tamguc2) as gg ,avg(tamgud2) as hh from sungjuk where m_date='"& a1 &"' and left(stu_id,3) >="& CInt(end_ban+1) &" and left(stu_id,3) <="& CInt(end_ban2) &" and (lang2 <> 0 and math2 <> 0 and eng2 <> 0 and tamgua2 <> 0 and tamgub2 <> 0 and tamguc2 <> 0  and tamgud2 <> 0) group by left(stu_id,3) order by aa"
풍동님이 2009-04-02 18:18에 작성한 댓글입니다. Edit
null로 변경하면 집계에서 빠집니다.

select avg(score), avg(nullif(score, 0))
  from (
        select 10 score union all
        select 0 union all
        select 20 union all
        select 30
       ) a;
구헌수(madcat)님이 2009-04-02 19:02에 작성한 댓글입니다.

고맙습니다.


몇시간 씨름해도 방법을 못찾았는데 nullif 하나에 모든게 해결 되네요. 고맙습니다.

풍동님이 2009-04-02 19:17에 작성한 댓글입니다. Edit

제가 풍동님 질문을 잘못 이해했었군요.
저는 0점이 있는 row전체를 제외한다고 생각했었습니다. 역시 구헌수님. ^^

박현우(lqez)님이 2009-04-03 09:16에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
28133sql injection 으로 변수처리
초보
2009-04-03
5831
28132[문의] 로그가 많이 쌓이는것 같아요. [1]
새벽소리
2009-04-02
4816
28131[문의] KEY 로 잡았을때 역할을 알고 싶어요~ [1]
새벽소리
2009-04-02
4731
28130평균구하기 [5]
풍동
2009-04-02
5845
28129odbc.ini 파일의 내용중 option이라는
조민석
2009-04-02
5281
28128MySQL , PostgreSQL 둘 중 무엇을 사용해야 할까요.
김상현
2009-04-02
4975
28126데이터 베이스 중복 데이터 많은 순서로 정렬 [2]
조항철
2009-04-02
5773
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.022초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다