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 38978 게시물 읽기
No. 38978
GREATEST에서 최대값 갯수 및 위치 알아내기
작성자
이장(leejang21)
작성일
2011-10-17 22:49
조회수
4,147

여기서 많은 정보를 알고가는 개발자입니다.

한가지 고민거리가 있어 이렇게 글을 남깁니다.

다른건 다 생략하고

GREATEST에서 최대값갯수와 위치를 알수있을까요

자세한건 아래 예를 참조바랍니다.

--아래--

예) GREATEST(10,2,10,4)로하면 당연히 10이 나옵니다.

제가 궁금한건 최대값이 2개다는것고 1번째와 3번째에 그값이있다는걸 어떻게 알수있을까요?

정렬하지 않았을경우입니다.

고수님의 답변 기다리겠습니다.

그럼...

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

SELECT v1, v2, v3, v4
     , max_val
     , COUNT(*) max_cnt
     , wm_concat(seq) max_seq
  FROM (SELECT v1, v2, v3, v4
             , LEVEL seq
             , DECODE(LEVEL, 1, v1, 2, v2, 3, v3, 4, v4) val
             , GREATEST(v1, v2, v3, v4) max_val
          FROM (SELECT 10 v1, 2 v2, 10 v3, 4 v4  FROM dual)
         CONNECT BY LEVEL <= 4
        )
 WHERE val = max_val
 GROUP BY v1, v2, v3, v4, max_val
;

마농(manon94)님이 2011-10-18 15:45에 작성한 댓글입니다.

SELECT v1, v2, v3, v4
     , GREATEST(v1, v2, v3, v4) max_val
     , DECODE(GREATEST(v1, v2, v3, v4), v1, 1, 0)
     + DECODE(GREATEST(v1, v2, v3, v4), v2, 1, 0)
     + DECODE(GREATEST(v1, v2, v3, v4), v3, 1, 0)
     + DECODE(GREATEST(v1, v2, v3, v4), v4, 1, 0) max_cnt
     , SUBSTR(DECODE(GREATEST(v1, v2, v3, v4), v1, ',1')
           || DECODE(GREATEST(v1, v2, v3, v4), v2, ',2')
           || DECODE(GREATEST(v1, v2, v3, v4), v3, ',3')
           || DECODE(GREATEST(v1, v2, v3, v4), v4, ',4')
            , 2) max_seq
  FROM (SELECT 10 v1, 2 v2, 10 v3, 4 v4  FROM dual)
;

마농(manon94)님이 2011-10-18 15:46에 작성한 댓글입니다.

역쉬 마농님 멋집니다. 감사합니다 ^^

이장(leejang21)님이 2011-10-28 16:08에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
38983함수사용법 조언 바랍니다.. (lpad, rpad) [2]
qa
2011-10-19
4239
38982특정문자로 나누는 방법을 알고 싶읍니다. [2]
용가리
2011-10-18
4712
38980trigger 질문 드립니다..꼭 부탁해요...^^;; 아 머리야... [1]
박정호
2011-10-18
4222
38978GREATEST에서 최대값 갯수 및 위치 알아내기 [3]
이장
2011-10-17
4147
38977전후 데이터의 시간차이 계산시 [2]
달타냥
2011-10-17
5586
38975이력조회쿼리문을 만들려고합니다. [2]
오라초
2011-10-17
4369
38970테이블스페이스말고 테이블단위로 복원이되나요? [2]
임서희
2011-10-14
3654
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다