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
운영게시판
최근게시물
PostgreSQL Q&A 5894 게시물 읽기
No. 5894
리스트를 정렬시에 order by 에 나눗셈이 안먹네요..
작성자
초보포스
작성일
2005-02-15 10:47
조회수
4,506

컬럼에서 aaa 는 전체점수

bbb는 사용자수 입니다.

 

select * from TABLE_NAME order by aaa / bbb desc

 

다음과 같은 정렬로 평균점수로 정렬을 하려고 하는데

division by zero 에러가 나는군요.. MySQL에서는 에러가 안나던데요...

물론 aaa 나 bbb 값에 0 값이 있는 경우도 있습니다.

어떤 다른 방법이 있을까요?

 

 

 

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

MySQL에서는 되는데, PostgreSQL에서는 안되는 사태는 'MySQL에서만 되는데'로 이해하시면 될듯싶습니다.

다른 RDBMS에서도 대부분 안됩니다.

 

간단하게, bbb 값이 0보다 큰 것들 가운데서로 한정 지으면 될것 같네요.

select * from where bbb > 0 order by aaa / bbb desc

union

select * from where bbb is null or bbb = 0 order by ....

 

이렇게...

하면 될 것 같았는데, union 구문에서는 order by 구문이 맨 마지막에 한번만 와야하는지라,

일단 앞부분 쿼리를 inline view로 처리를 해야겠네요.

 

수정된 쿼리

 

select * from (select * from where bbb > 0 order by aaa / bbb desc)

union

select * from where bbb is null or bbb = 0

 

김상기(ioseph)님이 2005-02-15 11:15에 작성한 댓글입니다.
이 댓글은 2005-02-15 11:22에 마지막으로 수정되었습니다.

아... 정말 감사합니다.

그렇게 하면 되겠군요..

아..그리고 MySQL에서만 되는거군요..

0/0 은 원래 에러가 정상인데 MySQL은 그냥 0으로 취급하는거 같더라구요..

 

아.. 그런데 만일 정렬이 asc라면 컬럼값이 0 인 값을 맨 위로 오도록 할수는 없을까요?

 

다시 한번 답변 정말 감사합니다.

초보포스님이 2005-02-15 11:43에 작성한 댓글입니다.
이 댓글은 2005-02-15 11:43에 마지막으로 수정되었습니다. Edit

음.. 테스트해보니 mysql 에선 1/0 을 NULL 로 취급하는군요...

1/0 이 0 이 되어버리면 큰일나죠..  ㅡㅡ;;

이경환(babocom)님이 2005-02-15 13:13에 작성한 댓글입니다.

이렇게 하면 되지 않을까요?

 

SELECT *

FROM (select *, CASE WHEN bbb <> 0 THEN aaa / bbb ELSE 0 END as div FROM table_name) a

ORDER BY div asc

박성철(gyumee)님이 2005-02-16 16:22에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
5897그누보드 postgresql 용 다운받고 의문이 있어서요.. [2]
이종현
2005-02-17
2358
5896테이블이나 컬럼에 코멘트를 달고는 볼 때는 어떻게 하나요? [2]
김창욱
2005-02-16
1918
5895Postgres&파워빌더 에러 [3]
초짜
2005-02-15
2223
5894리스트를 정렬시에 order by 에 나눗셈이 안먹네요.. [4]
초보포스
2005-02-15
4506
58938.0 alter language rename 버그 보고
김상기
2005-02-15
1868
5892PGCluster [3]
신기배
2005-02-14
2561
5890pg_dump 시에 에러메세지.. [5]
가우나라
2005-02-14
2550
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다