본문 바로가기
오라클 게시판/오라클 함수

오라클(Oracle) SQL 함수 리스트

by 기서무나구물 2023. 9. 30.

포스팅 목차

    오라클(Oracle) SQL 함수 리스트

     

    일행 함수

    단일행 함수는 쿼리 테이블 또는 뷰의 모든 행에 대하여 단일 결과 행을 반환한다. 이 함수는 select lists,where 구문,START WITH, CONNECT BY 구문, HAVING구문을 지정할수 있다.

    1. 수치함수

     

    처음메뉴로
    함수명 설명
    002.ABS 인수 n의 절댓값을 반환한다.
    003.ACOS 인수 n의 역코사인(arc cosine) 값을 반환한다
    007.ASIN n의 역사인(arc sine) 값을 반환한다.
    008.ATAN 인수 n의 역 탄젠트(arc tangent) 값을 반환한다.
    009.ATAN2 ATAN2(n, m)은 atan2(n/m)과 같으며, n/m의 역탄젠트(arc tangent) 값을 반환한다.
    013.BITAND 인수 1과 인수 2의 비트에 대한 AND연산을 수행한 결괏값을 정수로 반환한다.
    016.CEIL 인수에서 지정한 수치를 올림 하여 정수를 구하는 함수이다. (절단 함수)
    026.COS 파라미터 n(라디안으로 표현되는 각도)의 코사인 값을 반환한다.
    027.COSH 인수 n(라디안으로 표현되는 각도)의 쌍곡 코사인 값(hyperbolic cosine)을 반환한다.
    044.EXP e(자연로그의 밑)의 n 제곱 값을 반환한다. e=2.71828183 이 함수는 인수와 같은 타입의 값을 반환한다.
    050.FLOOR 지정한 숫자보다 작거나 같은 정수 중에서 최댓값을 반환한다. (내림 함수)fr
    067.LN 입력값의 자연로그 값을 반환한다. LN은 0보다 큰 값이다.
    070.LOG LOG(m, n)에서 밑을 m으로 한 n의 로그 값을 반환한다.
    078.MOD n2을 n1으로 나눈 나머지 값(Remainder)을 반환한다. n1이 0이면, n2를 반환한다.
    080.NANVL 만약 n2가 NaN이 아니라면, 오라클은 n2를 반환한다. 만약 입력 값 n2가 Nan(숫치가 아닌)인 경우에 대체 값 n1을 반환하도록 오라클에 지시한다. 이 함수는 NaN값을 Null으로 매핑하는데 위해 유용하다.
    102.POWER n2의 n1승 값을 반환한다.
    118.REMAINDER n2를 n1으로 나눈 나머지 값을 반환한다.
    120.ROUND(number) n값을 소수점 아래 (integer+1) 번 째 위치에서 정수 방향으로 반올림한 값을 반환한다.
    130.SIGN 수치형 변수 n의 부호를 반환한다.
    131.SIN 인수 n의 사인(sine) 값을 반환한다.(라디안으로 표현되는 각도)
    132.SINH 인수 n의 쌍곡선 사인(hyperbolic sine)을 반환한다.
    134.SQRT 인수 n의 제곱근을 반환한다.
    159.TAN 인수 n의 탄젠트(tangent) 값을 반환한다.(라디안으로 표현되는 각도)
    160.TANH 인수 n의 쌍곡선 탄젠트(hyperbolic tangent)를 반환한다.
    185.TRUNC(number) 수치 값 n1을 소수점 자리 중(소수점을 기준으로 양수 방향의 정수부 또는 음수 방향의 소수부)에서 파라미터 n2의 자리 이하를 절삭(버림, Truncation)한다.
    199.WIDTH_BUCKET 동일한 넓이를 갖는 히스토그램을 생성한다.

     


    2. 문자값을 반환하는 문자 함수

     

    처음메뉴로
     
    함수명 설명
    018.CHR 데이터베이스 문자 세트 또는 (NCHAR_CS를 지정 시)자국어 문자 세트(National character set) 중에서 VARCHAR2 값으로 n과 동일한 2진수를 가지는 문자를 반환한다. 보통 아스키 코드를 문자로 변환해서 반환한다.
    022.CONCAT char1과 char2를 결합하여서 하나의 문자열로 반환한다.(문자열 결합 함수)
    057.INITCAP 입력 문자열 중에서 각 단어의 첫 글자를 대문자로 나머지는 소문자로 변환하여 반환한다.
    071.LOWER 입력된 영문 문자열을 모두 소문자로 변환한다.
    072.LPAD 지정된 자릿수 n에 해당하는 길이에 1차적으로 문자열 expr1을 채우고, 왼편의 남은 공간에 expr1을 반복적으로 채운다.
    073.LTRIM 문자열 인수 char 좌측 끝에서 set에서 지정한 모든 문자를 제거한다.
    081.NCHR 지정한 수치에 해당하는 유니코드 문자값을 반환한다.
    087.NLS_INITCAP 각 단어의 처음 문자를 대문자로, 나머지 문자를 소문자로 변환하여 char 인수의 문자열 반환한다.
    088.NLS_LOWER 모든 문자를 소문자로 변환하여 반환한다.
    089.NLSSORT char를 정렬하기 위하여 이용되는 bytes의 문자열을 반환한다.
    090.NLS_UPPER 입력 문자열을 모두 대문자로 변환한 문자열을 반환한다.
    115.REGEXP_REPLACE 문자열에서 지정한 패턴 조건(정규 표현식,정규식)을 만족하는 부분을 검색하여서 다른 문자열로 치환합니다. 복잡한 치환/검색 조작을 가능하게 합니다.
    116.REGEXP_SUBSTR 문자열에서 지정한 패턴 조건(정규표현식, 정규식)을 만족하는 부분의 문자열을 반환한다.
    119.REPLACE 문자열 char에서 "search-string"을 검색하여서 일치하는 모든 부분을 "replacement_string"으로 변경한다.
    125.RPAD 인수 expr1 오른편에 전체 문자열 길이가 n이 되도록 문자열 인수 expr2에 지정한 문자를 반복하여서 붙여준다. (전체 문자열 길이(n) = expr1 문자열 길이 + 나머지 expr2 문자 반복)
    126.RTRIM 문자열 인수 char의 오른쪽 끝에서 set 에 지정한 모든 문자를 제거한다.
    133.SOUNDEX 문자열 인수 char와 동일한 음성 표현을 가지는 문자열을 반환한다.
    147.SUBSTR 문자열 Char에서 position 문자 위치로부터 substring_length 문자 길이만큼 문자열을 추출하여 반환한다.
    181.TRANSLATE expr인수 문자열에서 from_string에 지정한 문자의 포함 여부를 검색한 후에 존재하면, from_string 문자열의 개별 문자에 대하여 to_string 문자열에서 대응하는 위치에 존재하는 문자로 치환(변경)하여 expr을 반환한다.
    183.TREAT 선언된 인수의 유형(Type)을 변경할 수 있다.
    184.TRIM 문자열의 앞과 뒷부분을 검색하여서 trim_character 문자와 동일한 선행 또는 후행(양쪽) 문자를 제거한다.
    191.UPPER 모든 영문자를 대문자로 변환한다.

     


    3. NLS 문자 함수

     

    처음메뉴로
    함수명 설명
    084.NLS_CHARSET_DECL_LEN NCHAR열의 선언된 폭(문자의 개수)을 반환한다.
    085.NLS_CHARSET_ID 문자 집합 이름(character set name) string 인수에 해당하는 문자 집합 ID 번호를 반환한다.
    086.NLS_CHARSET_NAME ID 번호 number에 해당하는 문자 세트의 이름을 반환한다.

     


    4. 수치값을 반환하는 문자함수

     

    처음메뉴로
    함수명 설명
    005.ASCII  주어진 char의 첫 문자의 아스키 값에 상응하는 10진수값을 반환한다.
    058.INSTR 문자 열중에서 지정한 문자를 지정하여서 처음 나타나는 위치를 숫자로 반환한다. (문자검색)
    066.LENGTH 문자열 인수 char의 길이를 반환한다.
    114.REGEXP_INSTR 문자열에서 지정한 패턴 조건(정규 표현식)을 만족하는 문자열의 최초의 위치(무슨 문자인지)를 반환한다. 또한, 검색을 시작하는 시작 위치를 지정하는 것도 가능합니다.

     


    5. 일시 함수

     

    처음메뉴로
    함수명 설명
    004.ADD_MONTHS 일자 date에 특정 개월 수에 해당하는 integer를 더한 값을 반환한다.
    032.CURRENT_DATE 현재 세션의 시간대(time zone)를 기준으로 현재 날짜 정보를 Date 데이터 형으로 반환한다.
    033.CURRENT_TIMESTAMP 현재 session의 시간대를 기준으로 현재 날짜와 시간 정보를 반환한다.
    035.DBTIMEZONE 데이터 베이스의 시간대(time zone)의 정보를 반환한다.
    045.EXTRACT (datetime) 특정 날짜, 시간 값이나 날짜 값 등의 표현식으로부터 지정된 날짜 영역의 값을 추출하여 반환한다. 
    051.FROM_TZ timestamp 값과 시간대(time zone)를 TIMESTAMP WITH TIME ZONE 값으로 변환한다.
    062.LAST_DAY 해당 날짜가 속한 달의 마지막 날짜를 반환한다. 월마다 마지막 날짜가 다르므로 유용하게 사용될 수 있다. 
    069.LOCALTIMESTAMP 세션 시간대의 현재 날짜와 시각을 timestamp 데이터 유형의 형태로 출력한다.
    079.MONTHS_BETWEEN MONTHS_BETWEEN 함수는 날짜와 날짜 사이의 개월 수를 출력하는 함수이고, ADD_MONTHS 함수는 기준 날짜에서 특정 개월 수를 더한 날짜를 출력하는 함수이다.
    082.NEW_TIME zone1 시간대의 날짜와 시간 값을 zone2 시간대의 날짜와 시간 값으로 변환하여 출력한다.
    083.NEXT_DAY 해당일을 기준으로 명시된 요일의 가장 가까운 다음 요일에 해당하는 날짜를 반환한다.
    093.NUMTODSINTERVAL n을 INTERVAL DAY TO SECOND 문자(날짜 사이의 기간을 일시분초 형태로 표현)로 변경한다.
    094.NUMTOYMINTERVAL n을 INTERVAL YEAR TO MONTH문자(날짜 사이의 기간을 년월 형태로 표현)로 변경한다.
    121.ROUND(date) date 값을 포맷 모델 fmt에 지정한 단위로 반올림한 날짜를 반환한다.
    128.SESSIONTIMEZONE 현재 세션의 시간대(time zone)를 반환한다.
    152.SYS_EXTRACT_UTC time zone offset 또는 time zone region name을 포함한 datetime 값으로부터 협정 세계시간(세계 표준시간) UTC (Coordinated Universal Time—formerly Greenwich Mean Time)을 추출한다.
    157.SYSDATE 데이터 베이스가 위치하고 있는 OS의 일자와 시간을 반환한다. (현재 일자와 현재시간)
    158.SYSTIMESTAMP 데이터 베이스가 설치된 시스템의 fractional 초와 시간대를 포함한 시스템의 날짜를 반환한다.
    165.TO_CHAR(datetime) datetime 또는 날짜의 구간 값, TIMESTAMP, TIME 구역을 가지는 TIMESTAMP, 또는 TIMESTAMP WITH LOCAL TIME ZONE 데이터 형을 date 포맷 fmt에서 지정한 포맷의 VARCHAR2 데이터 타입의 문자열 값으로 변환(문자형 날짜 함수)한다. 날짜형 데이터를 문자열로 변환하는 함수이다.
    169.TO_DSINTERVAL CHAR, VARCHAR2, NCHAR, NVARCHAR2 데이터 형식의 문자열을 INTERVAR DAY TO SECOND형식의 값으로 변환한다.
    178.TO_TIMESTAMP CHAR, VARCHAR2, NCHAR, NVARCHAR2 데이터형의 문자열을 TIMESTAMP 데이터 형식의 값으로 변환한다.
    179.TO_TIMESTAMP_TZ CHAR, VARCHAR2, NCHAR, NVARCHAR2 데이터형의 문자열을 TIMESTAMP WITH TIME ZONE(TSTZ) 데이터형으로 변환한다.
    180.TO_YMINTERVAL CHAR, VARCHAR2, NCHAR, NVARCHAR2 데이터형의 문자열을 INTERVAL YEAR TO MONTH 데이터형으로 변경한다. 
    186.TRUNC(date) 날짜 부분(date)에서 포맷 모델 fmt에서 지정한 단위를 기준으로 날짜를 절삭(버림)하여 변경된 날짜를 반환한다.
    187.TZ_OFFSET 구문이 실행되는 날짜를 기준으로 시간대(time zone) 인수에 대응하는 시간대 오프셋(time zone offset)을 반환한다.

     


    6. 일반적인 비교 함수

     

    처음메뉴로
    함수명 설명
    052.GREATEST 다수의 인수중에서 가장 큰 값을 반환한다.
    065.LEAST 인수 EXPR의 리스트 중에서 가장 작은 값을 반환을 한다.

     


    7. 변환 함수

     

    처음메뉴로
    함수명 설명
    006.ASCIISTR  주어진 문자열의 아스키 문자열을 반환.
    012.BIN_TO_NUM 비트(2진수) 벡터를 동등한 수치(10진수)로 변환한다.
    015.CAST 데이터 형식이나 collection 형식을 다른 데이터 형식이나 collection 형식으로 변환한다.
    017.CHARTOROWID CHAR, VARCHAR2, NCHAR, or NVARCHAR2 데이터 형태의 값을 ROWID 데이터 형식으로 변환한다.
    021.COMPOSE 인수로써 임의의 데이터형 문자열을 지정하고, 입력한 값과 동일한 문자 세트에서 정규화된 형태의 유니코드를 반환한다.
    023.CONVERT 문자 세트를 다른 문자 세트의 문자열로 변환한다. 반환되는 데이터형은 VARCHAR2이다.
    037.DECOMPOSE 임의의 데이터형의 문자열을 입력과 같은 문자 세트로 분해 후의 UNICODE 문자열을 반환한다.
    056.HEXTORAW char,varchar2,nachr,nvarchar2 등의 문자 형태의 16진수 값을 raw값으로 변환한다.
    093.NUMTODSINTERVAL n을 INTERVAL DAY TO SECOND 문자(날짜 사이의 기간을 일시분초 형태로 표현)로 변경한다.
    094.NUMTOYMINTERVAL n을 INTERVAL YEAR TO MONTH문자(날짜 사이의 기간을 년월 형태로 표현)로 변경한다.
    110.RAWTOHEX 문자열 RAW의 값을 16진수의 문자로 변환한다.
    111.RAWTONHEX 문자열 RAW의 값을 NVARCHAR2 형태의 16진수로 변환한다.
    123.ROWIDTOCHAR rowid 값을 VARCHAR2 타입 형식으로 변환한다.
    124.ROWIDTONCHAR rowid값을 NVARCHAR2 타입 형식으로 변환한다.
    127.SCN_TO_TIMESTAMP 시스템 변경 번호(SCN)로 평가되는 수치를 인수로 지정하여, SCN과 관련된 가까운 timestamp를 반환한다.
    161.TIMESTAMP_TO_SCN 인수로써 timestamp 값을 지정하여서 timestamp와 관련된 시스템 변경 번호(system change number, SCN)를 반환한다.
    162.TO_BINARY_DOUBLE 지정한 인수를 BINARY_DOUBLE 타입의 값으로 변환하여 복수 정밀도 부동 소수점 수(double-precision floating-point number)를 반환한다.
    163.TO_BINARY_FLOAT 지정한 인수를 BINARY_FLOAT 타입의 값으로 변환하여 단일 정밀도 부동 소수점 수(single-precision floating-point number)를 반환한다.
    164.TO_CHAR (character) NCHAR, NVARCHAR2, CLOB, NCLOB 데이터를 데이터 베이스 문자 세트로 변환한다. (문자변환함수)
    165.TO_CHAR (datetime) datetime 또는 날짜의 구간 값, TIMESTAMP, TIME 구역을 가지는 TIMESTAMP, 또는 TIMESTAMP WITH LOCAL TIME ZONE 데이터 형을 date 포맷 fmt에서 지정한 포맷의 VARCHAR2 데이터 타입의 문자열 값으로 변환(문자형 날짜 함수)한다. 날짜형 데이터를 문자열로 변환하는 함수이다.
    166.TO_CHAR (number) 수치형의 값 n을 옵션의 number 포맷 fmt에서 지정한 VARCHAR2 데이터 타입의 문자열 값으로 변환한다. 수치형 데이터를 문자열로 변환하는 함수이다.
    167.TO_CLOB LOB열(LOB column)에 존재하는 LCLOB 값 또는 다른 문자열의 값을 CLOB 타입으로 형 변환 작업을 수행한다.
    168.TO_DATE CHAR, VARCHAR2, NCHAR, NVARCHAR2 데이터형의 문자열 char을 날짜형 데이터 타입 값으로 변환하는 형 변환 작업을 수행한다. 문자형 날짜 데이터를 날짜형 데이터로 변환하는 함수이다.
    169.TO_DSINTERVAL CHAR, VARCHAR2, NCHAR, NVARCHAR2 데이터 형식의 문자열을 INTERVAR DAY TO SECOND형식의 값으로 변환한다.
    170.TO_LOB long_column 열에서 LONG 또는 LONG ROW 형식의 값을 LOB 형식의 값으로 변환한다.
    171.TO_MULTI_BYTE single-byte 문자를 상응하는 multibyte 문자로 변환한 문자를 반환한다.
    172.TO_NCHAR(character) 문자열,CLOB,NCLOB 값을 자국어 문자 세트(National character set)로 변환한다.
    173.TO_NCHAR(datetime) datetime, DATE의 구간값, TIMESTAMP, TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE, INTERVAL MONTH TO YEAR, INTERVAL DAY TO SECOND데이터형을 데이터베이스 문자 세트(Database character set) 형태에서 자국어 문자 세트(National character set) 형태로 변환한다.
    174.TO_NCHAR(number) 수치형 인수 n을 자국어 문자 세트(National character set) 형태의 문자열로 변환한다.
    175.TO_NCLOB LOB열 또는 다른 문자열에 존재하는 CLOB값을 NCLOB값으로 변환한다.
    176.TO_NUMBER 인수 expr을 NUMBER 데이터형의 값으로 변환한다.
    177.TO_SINGLE_BYTE multibyte 문자를 그에 상응하는 single-byte 문자로 변환한 문자를 반환한다.
    178.TO_TIMESTAMP CHAR, VARCHAR2, NCHAR, NVARCHAR2 데이터형의 문자열을 TIMESTAMP 데이터 형식의 값으로 변환한다.
    179.TO_TIMESTAMP_TZ CHAR, VARCHAR2, NCHAR, NVARCHAR2 데이터형의 문자열을 TIMESTAMP WITH TIME ZONE(TSTZ) 데이터형으로 변환한다.
    180.TO_YMINTERVAL CHAR, VARCHAR2, NCHAR, NVARCHAR2 데이터형의 문자열을 INTERVAL YEAR TO MONTH 데이터형으로 변경한다. 
    182.TRANSLATE ... USING char을 데이터베이스 문자 세트(Database character set)와 자국어 문자 세트(National character set) 사이의 변환을 위하여 지정된 문자 세트(character set)로 변경한다.
    189.UNISTR 유니코드 형태의 텍스트 문자열을 인수로 입력받아서 자국어 문자 세트(National character set) 형태로 인코딩 된 문자열을 반환한다.

     


    8. LARGE OBJECT(LOB) 함수

    함수명 설명
    011.BFILENAME 서버 파일 시스템의 물리 LOB 바이너리 파일과 대응하는 BFILE locator를 반환한다.
    042.EMPTY_BLOB, EMPTY_CLOB LOB 변수를 초기화하기 위하여 이용하기 위한 공백 LOB 위치를 반환한다. INSERT문이나 UPDATE문에서 LOB 열 또는 속성을 EMPTY로 초기화하는 것은 공백의 LOB 위치를 반환하는 것이다.

     


    9. 수집 함수

     

    함수명 설명
    014.CARDINALITY 중첩 테이블(nested table)에서 원소의 개수를 반환한다.
    020.COLLECT 임의 형태의 인수 열을 취하여, 선택된 행에서 입력된 형태의 중첩 테이블을 생성한다.
    103.POWERMULTISET 입력된 중첩(nested) 테이블의 공백을 제외한 모든 부분집합(submultisets)을 포함한 중첩 테이블의 중첩된 테이블을 반환한다.
    104.POWERMULTISET_BY_CARDINALITY 중첩 테이블과 cardinality(주어진 수학적 집합에서 요소들의 개수)를 인수로 입력하여서, 지정한 카디나리트의 중첩 테이블의 모든 비공백 부분집합(submultisets이라고 불리는)을 소유하는 중첩 테이블의 중첩 테이블을 반환한다.
    129.SET 중첩 테이블에서 중복을 제거한 값을 반환한다.

     


    10. 계층 함수

     

    처음메뉴로
    함수명 설명
    149.SYS_CONNECT_BY_PATH 계층적 쿼리에서 유의하다. 이 함수는 루트(Root)로부터 node로 가는 열의 값 Path를 반환한다.

     


    11. XML 함수

    함수명 설명
    039.DEPTH UNDER_PAHT와 EQUALS_PAHT 조건과 함께 이용되는 보조 함수이다. 이 함수는 같은 상관 변수를 가지는 UNDER_PATH조건에 의해 지정된 PATH에서 레벨의 수를 반환한다.
    043.EXISTSNODE XPath에서 node의 존재 여부를 확인하여 그 결과를 반환한다. 0은 노드가 남아 있지 않는 경우이고, 1은 아직 노드가 존재하는 경우이다.
    046.EXTRACT (XML) VARCHAR2 XPath 문자열에서  XML 플래그먼트(fragment)를 포함한 XMLType 인스턴스를 반환한다.
    047.EXTRACTVALUE existsnode와 유사한 함수로써 결과 node의 스칼라 값을 반환한다.
    098.PATH under_path나 equals_path의 보조 함수로서, 자원의 관계 경로를 반환한다.
    151.SYS_DBURIGEN 하나 이상의 열 또는 속성 및 선택적으로 ROWID를 인수로 지정하여서, 특정 열 또는 행 오브젝트에 대한 DBURIType 데이터 타입의 URL을 생성한다. 
    155.SYS_XMLAGG 입력받은 모든 문서를 취합하여서 하나의 XML 문서를 통합한다.
    156.SYS_XMLGEN 스칼라 값, object type, xml type 인스턴스를 XML 문서로 변형한다.
    200.XMLAGG XML fragment(조각)의 집합체를 인수로 지정한 후 이 결과를 하나로 취합하여 XML 문서를 생성하여 반환한다.
    201.XMLCOLATTVAL 파라미터로 지정한 변수들을 "column name" 속성으로 구성된 XML 조각(XML fragment)으로 변환하고, 이 결과를 취합한 XML 문서를 생성한다.
    202.XMLCONCAT 둘 이상의 XML 값을 연결하는 함수.
    203.XMLELEMENT XML 문서를 생성하기 위하여 identifier에 대한 요소의 이름(element name), 요소에 대한 속성의 옵션 집합, 요소의 내용으로 구성된 인수를 지정한다.
    204.XMLFOREST 개별 인수의 파라미터를 XML로 변환하고, 변환된 인수를 결합한 XML 조각(XML 단편, XML fragment)을 반환한다.
    205.XMLSEQUENCE XMLType의 컬렉션을 반환하기 위해서, 이 함수를 테이블 구문에서 복수행에서 컬렉션 값을 unnest 하기 위해 이용할 수 있다. 
    206.XMLTRANSFORM XMLType인스턴스와 그 자체가 XMLType 인스턴스인 XSL스타일 시트를 인수로 지정한다. 이 함수는 스타일 슈트를 인스턴스로 적용하여서 XMLType를 반환한다.

     


    12. 인코딩 함수와 디코딩 함수 

     

    처음메뉴로
    함수명 설명
    036.DECODE 일반적인 프로그래밍 언어의 IF 조건문을 오라클 SQL 또는 PL/SQL 에서 사용하기 위하여 만들어진 오라클 함수이다. 따라서 일반 프로그래밍 언어의 IF 조건문이 수행할 수 있는 기능을 포함하고 있다. (CASE WHEN 구문을 처리 가능)
    041.DUMP 지정한 데이터의 위치와 길이 등에 대한 정보를 지정한 형식으로 반환한다.
    097.ORA_HASH 주어진 표현에 대한 해쉬 값을 계산하는 함수이다.
    198.VSIZE expr을 표현하기 위하여 내부에서 사용되는 바이트(Byte)의 수를 반환한다.

     


    13. NULL 함수

     

    처음메뉴로
    함수명 설명
    019.COALESCE 나열된 인수의 값을 순차적으로 체크하여 NULL이 아닌 첫 번째 인수를 반환한다.
    068.LNNVL 조건문의 한쪽 또는 양쪽의 피연산자가 NULL이 존재하는 관측치를 포함하여 조건문을 평가하기 위한 방법을 제공한다. 이 함수는 WHERE구문에서만 사용 가능하다.
    092.NULLIF expr1과 expr2를 비교하는 비교 함수이다. 만약 expr1과 expr2가 같으면 NULL값을 반환하고, expr1과 expr2가 서로 동일하지 않으면 expr1을 반환한다. 
    095.NVL 쿼리의 결과에서 NULL(공백으로 반환) 값을 치환하는 함수이다. 만약 expr1이 NULL이면 expr2를 반환하고, 만약 expr1이 NULL이 아니면 expr1을 반환한다.
    096.NVL2 NVL2함수를 사용하면, 지정한 표현이 NULL인지 여부에 근거하여 쿼리의 반환될 값을 분기하여 처리할 수 있다. 만약 expr1이 NULL이 아니라면 expr2를 반환하고, 만약 expr1인 NULL이라면 expr3을 반환한다.

     


    14. 환경 함수 와 식별자 함수

     

    처음메뉴로
    함수명 설명
    150.SYS_CONTEXT 문맥 namespace와 관련된 parameter의 값을 반환한다.
    153.SYS_GUID 16바이트로 구성된 고유전역식별자(globally unique identifier, RAW 값)를 생성하여 반환한다.
    154.SYS_TYPEID 피연산자(operand)의 가장 구체적인 형태의 typeid를 반환한다. 이 값은 주로 대체 가능한 열의 기초가 되는 형태 판별 열을 식별하는데 이용된다.
    188.UID 세션 사용자를 고유하게 식별하기 위한 정수 ID를 반환한다. (로그인한 사용자)
    192.USER 로컬 데이터베이스에서 세션 사용자(로그온 한 사용자)의 이름을 반환한다.
    193.USERENV 현재 세션에 대한 정보를 반환한다.

     



    15. 집계 함수

    집계 함수는 복수의 행 그룹을 기반으로 집계함수를 처리하여서 단일 결과 행을 반환한다. 집계 함수는 Select 절의 변수 목록, ORDER BY 및 HAVING 구문에서 사용 할 수 있다. 집계 함수는 일반적으로 SELECT 구문에서 GROUP BY절과 함께 사용되며, Oracle Database 은 조회 대상 테이블 또는 뷰의 개별 행 그룹에 집계 함수를 적용하여서 각 그룹에 집계 함수로 데이터를 처리하고 단일 결과 행을 반환한다..  GROUP BY 절이 포함된 쿼리에서 SELECT 구문의 목록의 요소는 집계 함수, GROUP BY 표현식, 상수 또는 이들 중 하나를 포함하는 표현식으로 사용 할 수 있다. 

    GROUP BY 절을 지정하지 않으면, Oracle은 조회된 테이블이나 뷰의 모든 행을 기준으로 SELECT 구문에서 지정한 집계 함수를 적용합니다. HAVING 절에서 집계 함수 사용하여서 조회 대상 테이블이나 뷰의 개별 행 값이 아닌 집계 함수의 결과를 기반으로 출력 결과에서 특정 그룹을 선택 및 제거 할 수 있다.

     

    단일 인수를 취하는 많은 집계 함수에서 아래와 같은 절을 함께 사용 할 수 있다.:

    • DISTINCT 절을 지정하면 집계 함수는 인수 표현식의 중복된 행을 제외한 고유한 값을 대상으로 지정한 집계 작업을 수행한다.
    • ALL 절을 지정하면 집계 함수는 중복된 행을 포함한 모든 값을 고려하여 집계 작업을 수행한다.

    예를 들어 1, 1, 1, 3 데이터에 대한 평균값은  DISTINCT에서 평균은 2입니다. ALL 절에 대한 평균은 1.5입니다. 인수를 지정하지 않으면 기본값은 ALL 절이다.

    COUNT(*) 및 GROUPING 절을 제외한 모든 집계 함수는 Null을 무시합니다. 집계 함수에 대한 인수(변수)에 NVL 함수를 적용하여 Null 값을 대체 할 수 있습니다. COUNT 함수는 NULL 값을 반환하지 않고 대신에 숫자 또는 0을 반환한다. 나머지 모든 집계 함수의 경우 데이터 세트에 행이 없거나 집계 함수에 대한 인수로 null이 존재하는 행만 포함되어 있으면 함수는 null 값을 반환한다.

    집계 함수 MIN, MAX, SUM, AVG, COUNT, VARIANCE 및 STDDEV 함수 뒤에 KEEP 키워드를 지정하면 FIRST 또는 LAST 함수와 함께 사용할 수 있으며, 지정한 정렬 방식 지정에 대하여 FIRST 또는 LAST를 사용하여서 순위가 책정된(매겨진) 행 집합에 대하여 특정 값을 선택 및 처리 할 수 있다. 자세한 내용은 FIRST를 참조하세요.

    집계 함수를 중첩하여 사용할 수 있습니다. 예를 들어, 다음 예제는 샘플 스키마 hr에 존재하는 개별 부서의 최대 급여에 대한 평균을 계산합니다.:

    SELECT AVG(MAX(salary)) FROM employees GROUP BY department_id;
    
    AVG(MAX(SALARY))
    ----------------
               10925
    
    

    이 계산은 GROUP BY 절(department_id)에 정의된 각 그룹별 내부 집계(MAX(salay))를 평가하고, 그 결과에 대하여 다시 한번 집계 작업을 수행한다.

     

    The aggregate functions are:

    함수명 설명
    010.AVG 지정된 칼럼에 대한 조건을 만족하는 데이터를 기준으로 Null을 제외한 평균값을 반환한다. 
    020.COLLECT 임의 형태의 인수 열을 취하여, 선택된 행에서 입력된 형태의 중첩 테이블을 생성한다.
    024.CORR 2개의 수치형 변수에 대한 상관 계수를 반환한다. 집계 함수 또는 분석 함수로 이용할 수 있다.
    025.CORR_* Pearson's 상관계수를 계산한다. CORR_*함수는 비모수 또는 순위 상관을 지원한다.
    028.COUNT 쿼리에 의해 반환되는 관측치 행의 개수를 반환한다. 집계 함수 또는 분석함수로 이용할 수 있다.
    029.COVAR_POP number조합의 세트의 모집단 공분산을 반환한다. 집계 함수 또는 분석함수로 이용할 수 있다.
    030.COVAR_SAMP 2개 수치형 변수에 대한 표본 공분산(sample covariance)을 반환한다. 집계 함수 또는 분석 함수로 이용된다.
    031.CUME_DIST 그룹에 존재하는 관측치의 누적 분포 값을 계산한다.
    038.DENSE_RANK Rank()와 유사한 함수로 각 그룹별로 ORDER BY절에 사용된 칼럼이나 표현식을 기준으로 정렬하고, 그룹 내의 각 열에 대한 순위를 부여한다. RANK()와 달리 동일 순위 다음의 순위는 동일 순위의 수와 상관없이 1을 증가하여 처리한다.
    048.FIRST 그룹별 또는 전체 데이터에 대하여 FIRST와 LAST 함수는 데이터를 정렬한 후 그룹별(전체 데이터) FIRST(최초) 또는 LAST(최종) 값을 선택하여 지정한 작업을 수행한다.
    053.GROUP_ID 지정된 GROUP BY 결과로부터 중복된 그룹을 구별한다.
    054.GROUPING ROLLUP이나 CUBE 연산자와 함께 사용하여 GROUPING 함수에 기술된 칼럼이 ROLLUP이나 CUBE 연산 시 사용이 되었는지를 보여 주는 함수이다.
    055.GROUPING_ID 행과 관련되는 GROUPING 비트 벡터(bit vector)에 대응하는 수치를 반환한다.
    061.LAST FIRST and LAST함수는 매우 유사한 함수이다. 양쪽 함수 모두 그룹별 또는 전체 데이터에 대하여 데이터를 지정한 정렬 순서 기준으로 정렬한 후 그룹별(또는 전체 데이터) FIRST(최초) 또는 LAST(최종) 값을 선택하여 지정한 작업을 수행한다.
    075.MAX 지정한 인수를 기준으로 그룹 또는 전체 데이터에 대한 최댓값을 반환한다.
    076.MEDIAN 연속된 분산 모델을 가정한 역 분포 함수이다. 이 함수는 수치형 데이터 또는 일자(Date)에 대한 중앙값 또는 값의 정렬 후에 보간법을 사용하여 중앙값을 계산하여 반환한다.
    077.MIN 지정한 인수를 기준으로 그룹 또는 전체 데이터에 대한 인수의 최솟값을 반환한다.
    099.PERCENT_RANK 인수로 지정한 값의 그룹 내의 위치를 나타내는 백분위 순위(순위 퍼센트, Percent rank)를 반환한다.
    100.PERCENTILE_CONT 연속된 분포 모델을 가정하여 인수로 지정한 백분위 값에 해당하는 값을 계산하는 역 분포 함수(inverse distribution function)이다.
    101.PERCENTILE_DISC 이산 분포 모형을 가정하는 역 분포 함수이다. 사용자가 지정한 백분위수에 해당하는 데이터 값을 검색하고, 정확하게 일치하는 데이터 값이 없으면 지정한 백분위 값의 주변 데이터 정렬 옵션에 따라 우선순위가 빠른 바로 앞의 관측치 값을 반환한다. 
    108.RANK 값의 그룹에서 값의 순위를 계산한다. 반환되는 데이터형은 NUMBER이다.
    117.REGR_ (Linear Regression) Functions 선형 회귀 함수는 정규 최소 제곱 회귀 선상을 수치 쌍의 세트에 적합한다.  집계 함수와 분석함수로 이용할 수 있다.
    135.STATS_BINOMIAL_TEST 두 개의 유효한 값이 존재하는 이분형 변수(이분 변수, 두 개의 배타적인 값을 가지는 변수)에 대해서 동질성 검증을 위한 정확도 검증 작업(Exact probability test)을 수행한다.
    136.STATS_CROSSTAB 교차분석(crosstab)은 두 개의 명목 변수를 분석하는 방법이다. 
    137.STATS_F_TEST 두 개의 분산이 유의한 차가 있는지 테스트(F 검정)한다.
    138.STATS_KS_TEST 두 개의 표본이 같은 모집단에 속하고 있는지 또는 동일한 분포를 가지는 모집단에 속하고 있는지 테스트하는 Kolmogorov-Smirnov함수이다.
    139.STATS_MODE 값의 집합을 인수로 취하여, 가장 큰 빈도를 가지는 값(최빈값, mode)을 반환한다.
    140.STATS_MW_TEST A Mann Whitney test는 2개의 독립 표본(independent samples)을 비교한다.
    141.STATS_ONE_WAY_ANOVA 일원분산분석 함수(STATS_ONE_WAY_ANOVA)는 분산의 다른 2개 추정치 비교하여 통계적 유의성에 대한 평균(그룹 또는 변수에 대한)의 유의한 차이를 검증한다. 
    142.STATS_T_TEST_* t검정은 평균의 차이의 유의성을 측정한다.
    143.STATS_WSR_TEST 대응쌍 표본의 윌콕스 부호 순위 검증(Wilcoxon Signed Ranks test)을 수행하여 표본간의 차이가 유의한 차이가 있는지 여부를 검정한다.
    144.STDDEV 수치형 인수 expr의 표본표준편차(sample standard deviation)를 반환한다.
    146.STDDEV_SAMP 누적 표본 표준편차(Cumulative sample standard deviation)를 계산하고, 표본 분산의 제곱근 값(Square root of the sample variance)을 반환한다.
    148.SUM 그룹 또는 전체 데이터에 대한 수치형 인수 expr에 대한 값의 합을 반환한다.
    195.VAR_POP 수치형 변수에서 Null 값들을 제거한 후에 해당 변수의 모집단 분산(population variance)을 반환한다. 집계 함수와 분석 함수를 이용할 수 있다.
    196.VAR_SAMP 지정한 변수에서 null들을 제거한 후에 수치형 변수의 표본 분산(sample variance)을 반환한다. 집계 함수와 분석 함수로 이용 가능하다.
    197.VARIANCE expr의 분산을 반환한다.


    16. 분석 함수

    분석 함수는 행 그룹을 기반으로 집계 함수의 값을 계산한다. 각 그룹에 대해 여러 개의 행을 반환한다는 점에서 집계 함수와 다르다. 행 그룹을 윈도우(Window) 라고 하며 analytic_clause에 의해 정의된다. 각 행에 대해 행의 슬라이딩 윈도우가 정의된다. 이 윈도우는 현재 행에 대한 계산을 수행하는 데 사용되는 행의 범위를 결정한다. 윈도우의 크기는 실제 행의 물리적 갯수 또는 시간과 같은 논리적 간격을 기반으로 결정된다.

    분석 함수는 최종 ORDER BY 절을 제외하고 쿼리에서 마지막으로 실행되는 연산 작업의 집합이다. 분석 함수가 처리되기 전에 모든 조인 작업과 모든 WHERE, GROUP BY 및 HAVING 절이 수행된다. 따라서 분석 함수는 Select 구문의 목록이나 ORDER BY 절에서만 사용 할 수 있습니다.

    분석 함수는 일반적으로 누적 집계, 데이터 이동 작업, 중심 데이터 계산 및 보고서 집계 작업 등을 수행한다.


    analytic_function::=

    Description of the illustration analytic_function.gif


    analytic_clause::=

    Description of the illustration analytic_clause.gif


    query_partition_clause::=

    Description of the illustration query_partition_clause.gif


    order_by_clause::=

    Description of the illustration order_by_clause.gif


    windowing_clause ::=

    Description of the illustration windowing_clause.gif

    이 구문의 의미는 다음 섹션에서 설명합니다.


    analytic_function

    분석 함수의 이름을 지정한다. (분석 함수 목록 참조).


    arguments

    분석 함수는 0~3개의 인수를 사용한다. 인수는 숫치형 데이터이거나 암묵적으로 숫치형 데이터로 변환될 수 있는 숫자 이외의 데이터 타입을 지정 할 수 있다. Oracle은 숫자 우선 순위가 가장 높은 인수를 결정하고 나머지 인수를 해당 데이터 타입으로 암묵적으로 변환한다. 개별 함수에 대해 별도로 명시하지 않는 한 반환되는 데이터의 타입은 해당 데이터 타입이다.

     

    analytic_clause

    OVER analytic_clause 구문을 사용하여 쿼리 결과 집합에 대해 함수가 수행 할 작업 내용을 작성한다. 이 절은 FROM, WHERE, GROUP BY 및 HAVING 절 다음에 계산되고, SELECT 구문 목록 또는 ORDERBY 절에 해당 분석 함수를 지정할 수 있다. 분석 함수를 기반으로 쿼리 결과를 필터링하려면, 이러한 함수의 결과를 상위 쿼리 내에서 중첩한 다음 중첩된 하위 쿼리의 결과를 필터링한다.

    Notes on the analytic_clause:
    • analytic_clause의 특정 부분에 분석 함수를 추가로 지정하여 분석 함수를 중첩하여 사용할 수 없다. 그러나, 하위 쿼리에 분석 함수를 지정하고, 상위 쿼리에서 해당 하위 쿼리 결과에 대해 다른 분석 함수를 지정하여 계산할 수 있습니다.
    • 내장된 분석 함수와 유사하게 사용자 정의 분석 함수를 OVER analytic_clause 절에 지정할 수 있다. 'CREATE FUNCTION'을 참고.

    query_partition_clause

    PARTITION BY 절을 사용하면 하나 이상의 value_expr을 기반으로 쿼리 결과 집합을 그룹으로 분할한다. 이 절을 생략하면 함수는 쿼리 결과 집합의 모든 행을 단일 그룹으로 처리하여 작업한다.

    분석 함수에서 query_partition_clause를 사용하려면 구문의 상위 분기(괄호 없이)를 사용한다. 모델 쿼리(model_column_clause) 또는 분할된 외부 조인(outer_join_clause)에서 이 절을 사용하려면 구문의 하위 분기(괄호가 있는)를 사용한다.

    동일하거나 다른 PARTITION BY 키를 사용하여 동일한 쿼리에 여러 분석 함수를 지정할 수 있다.

    질의하는 개체에 병렬 속성이 있고, query_partition_clause에서 분석 함수를 지정하면 함수 계산도 병렬화 방식으로 처리된다.

    value_expr의 유효한 값은 상수, 열, 비분석 함수, 함수 표현식 또는 이들 중 하나를 포함하는 표현식이다.


    order_by_clause

    order_by_clause를 사용하면 파티션 내에서 데이터가 정렬되는 방식을 지정한다. PERCENTILE_CONT 및 PERCENTILE_DISC(단일 키만 사용)를 제외한 모든 분석 함수에 대하여 파티션의 값을 복수의 키로 순서를 정렬할 수 있습니다. 개별 키의 값은 value_expr로 정의되고, 개별 키의 값은 지정한 순서대로 정렬 순위를 지정한다.

    각 함수 내에서 여러 순서 표현식을 지정할 수 있다. 이렇게 하면 두 번째 표현식이 첫 번째 표현식에 존재하는 동일한 값 사이의 관계를 해결할 수 있으므로 데이터 사이의 순위를 매기는 함수를 사용할 때 특히 유용하다.

    order_by_clause의 결과가 여러 행에 대해 동일한 값을 생성할 때마다 함수는 다음과 같이 동작한다.

    • CUME_DIST, DENSE_RANK, NTILE, PERCENT_RANK 및 RANK 함수는 각 행에 대해 동일한 결과를 반환한다.
    • ROW_NUMBER는 order_by_clause를 기준으로 동일한 순위가 배정된 경우에도 각 행에 별도의 고유한(상이한) 값을 할당한다. 이 값은 행이 처리되는 순서를 따라 결정되며, ORDER BY 절에 의하여 전체 순서를 보장하지 않는 경우 이는 비결정적일 수 있다.
    • 다른 모든 분석 함수의 경우 결과는 윈도우 지정 방식에 따라 달라진다. RANGE 키워드를 사용하여 논리적 윈도우를 지정하면 함수는 각 행에 대해 동일한 결과를 반환하고, ROWS 키워드를 사용하여 물리적 윈도우를 지정하면 결과는 비결정적이다.

    Restriction on the ORDER BY Clause
    ORDER BY 절에는 다음과 같은 제한 사항이 적용된다.
     
    • order_by_clause를 분석 함수에서 사용하려면 표현식(expr)으로 지정해야 하며, SIBLINGS 키워드는 유효하지 않는다(계층 쿼리에서만 유효하다).  위치(position) 및 열 별칭(c_alias)도 유효하지 않는다. 그 외의 경우,  이 order_by_clause  절은 전체 쿼리 또는 하위 쿼리를 정렬하는 데 사용되는 것과 동일하다.
    • RANGE 키워드를 사용하는 분석 함수는 다음 중 하나의 윈도우를 지정하는 경우 ORDER BY 절에서 여러 개의 정렬 키를 사용할 수 있다.
      • RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW. ( 축약 방식 : RANGE UNBOUNDED PRECEDING.)
      • RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
      • RANGE BETWEEN CURRENT ROW AND CURRENT ROW
      • RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
    이 4개 이외의 윈도우 경계는 분석 함수의 ORDER BY 절에서 하나의 정렬 키만 지정 할 수 있습니다. 이 제한사항은 ROW 키워드로 지정한 윈도우 경계에는 적용되지 않습니다.

     

    ASC | DESC

    데이터 정렬 순서(오름차순 또는 내림차순)를 지정한다. 기본값은 ASC 이다.


    NULLS FIRST | NULLS LAST

    Null 값을 포함하는 반환된 행에서 Null 값의 정렬 순서를 첫 번째 또는 마지막에 위치하도록 할 지 여부를 지정한다.

    NULLS LAST는 오름차순이 기본값이고,  NULLS FIRST는 내림차순을 기본값으로 지정한다.

    분석 함수는 항상 함수의 order_by_clause에 지정된 순서대로 행을 처리한다. 그러나 함수의 order_by_clause 절은 결과의 정렬 순서를 보장하지 않는다. 최종 결과의 정렬 순서를 보장하려면 쿼리에서 order_by_clause 절을 지정해야 한다.

     

    windowing_clause

    일부 분석 함수에서는 windowing_clause 절을 사용 할 수 있다. 이 섹션 끝에 존재하는 분석 함수 목록에서 windowing_clause 절을 허용하는 함수 뒤에는 별표(*)가 표시되어 있다.


    ROWS | RANGE

    이러한 키워드는 각 행에 대해 함수 결과를 계산하는 데 사용되는 윈도우(행의 물리적 또는 논리적 집합)을 정의한다. 그러면 이 함수는 윈도우의 모든 행에 적용된다. 윈도우는 쿼리 결과 집합 또는 파티션의 위쪽에서 아래쪽으로 이동한다.

    • ROWS는 물리적 단위(행)로 윈도우 창을 지정한다.
    • RANGE는 논리적 오프셋으로 윈도우를 지정한다.

    order_by_clause를 지정하지 않으면 이 절을 지정할 수 없습니다. RANGE 절로 정의한 일부 윈도우 경계에서는 order_by_clause 절에 하나의 표현식만 지정할 수 있다. 'ORDER BY 절의 제한 사항'을 참고하라.

    논리적 오프셋이 존재하는 분석 함수에서 반환되는 값은 항상 결정적이다. 그러나 물리적 오프셋이 존재하는 분석 함수에 의해 반환하는 값은 순서 표현식이 고유한 순서를 생성하지 않으면, 비결정적 결과를 생성할 수 있다. 이러한 고유한 순서를 달성하려면 order_by_clause에 여러 열을 지정해야 할 수도 있다.


    BETWEEN ... AND

    BETWEEN ... AND 절을 사용하여 윈도우의 범위에 해당하는 시작점과 끝점을 지정 할 수 있다. 첫 번째 표현식(AND 구문 앞)은 시작점을 정의하고 두 번째 표현식(AND 구문 뒤)은 끝점을 정의한다.

    BETWEEN 구문을 생략하고 끝점을 하나만 지정하면 Oracle은 이를 시작점(start point)으로 간주하고 기본적으로 현재 행을 끝점(end point)으로 설정한다.


    UNBOUNDED PRECEDING

    UNBOUNDED PRECEDING을 지정하면 파티션의 첫 번째 행에서 윈도우를 시작한다. 이 방식은 시작점을 지정하는 것이지, 끝점(End point)을 지정하는데는 사용 할 수 없다.


    UNBOUNDED FOLLOWING

    UNBOUNDED FOLLOWING을 지정하면 윈도우는 파티션의 마지막 행에서 작업을 종료한다. 이 옵션은 끝점 지정하는 방식으로 사용되지만, 시작점 지정하는 방식으로 사용할 수 없다.


    CURRENT ROW

    시작점으로 CURRENT ROW 절을 지정하면 윈도우가 현재 행 또는 값에서 시작하도록 지정한다(각각 ROW 또는 RANGE를 지정했는지 여부에 따라 다름). 이 경우 끝점으로 value_expr PRECEDING을 지정할 수 없다.

    끝점으로 CURRENT ROW 절을 지정하면 윈도우가 현재 행이나 값에서 끝나도록 지정한다(각각 ROW 또는 RANGE를 지정했는지 여부에 따라 다름). 이 경우 시작점으로 value_expr FOLLOWING을 지정할 수 없다.


    value_expr PRECEDING or value_expr FOLLOWING

    RANGE 또는 ROW에 대하여:

    • value_expr FOLLOWING을 시작점으로 지정한 경우, 끝점은 value_expr FOLLOWING으로 지정해야 한다.
    • value_expr PRECEDING이 끝점으로 지정한 경우, 시작점은 value_expr PRECEDING으로 지정해야 한다.

    숫자 형식의 시간 간격으로 정의된 논리적 윈도우를 정의하는 경우 변환 함수를 사용해야 할 수도 있다.

     

    ROWS를 지정한 경우:

    • value_expr은 물리적 오프셋이다. 상수 또는 표현식으로 지정해야 하며 양수 값으로 평가되어야 한다.
    • value_expr이 시작점의 일부인 경우, 끝점을 평가하기 전에 먼저 해당 행이 평가되어야 한다.

     

    RANGE를 지정한 경우:

    • value_expr은 논리적 오프셋이다. 양수 값 또는 기간 리터럴로 평가되는 상수 또는 표현식을 지정해야한다. 기간 리터럴에 대한 자세한 내용은 리터럴을 참조하라.
    • order_by_clause에는 하나의 표현식만 지정할 수 있다.
    • value_expr이 수치형 데이터로 평가되는 경우 ORDER BY expr은 수치형 데이터 또는 DATE 타입이어야 한다.
    • value_expr이 시간 간격 및 구간 값(interval value)으로 평가되는 경우 ORDER BY expr은 DATE 타입이어야 합다.""interval value

    windowing_clause를 완전히 생략하는 경우 기본값은 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW이 된다.

    분석 함수는 일반적으로 데이터 웨어하우징 환경에서 사용된다. 다음 분석 함수 목록에서 windowing_clause 절을 허용하는 함수 뒤에는 별표(*)가 표시되어 있다.

    함수명 설명
    010.AVG * 지정된 칼럼에 대한 조건을 만족하는 데이터를 기준으로 Null을 제외한 평균값을 반환한다.
    024.CORR * 2개의 수치형 변수에 대한 상관 계수를 반환한다. 집계 함수 또는 분석 함수로 이용할 수 있다.
    028.COUNT * 쿼리에 의해 반환되는 관측치 행의 개수를 반환한다. 집계 함수 또는 분석함수로 이용할 수 있다.
    029.COVAR_POP * number조합의 세트의 모집단 공분산을 반환한다. 집계 함수 또는 분석함수로 이용할 수 있다.
    030.COVAR_SAMP * 2개 수치형 변수에 대한 표본 공분산(sample covariance)을 반환한다. 집계 함수 또는 분석 함수로 이용된다.
    031.CUME_DIST 그룹에 존재하는 관측치의 누적 분포 값을 계산한다.
    038.DENSE_RANK Rank()와 유사한 함수로 각 그룹별로 ORDER BY절에 사용된 칼럼이나 표현식을 기준으로 정렬하고, 그룹 내의 각 열에 대한 순위를 부여한다. RANK()와 달리 동일 순위 다음의 순위는 동일 순위의 수와 상관없이 1을 증가하여 처리한다.
    048.FIRST FIRST와 LAST는 매우 유사한 함수이다. 그룹별 또는 전체 데이터에 대하여 FIRST와 LAST 함수는 데이터를 정렬한 후 그룹별(전체 데이터) FIRST(최초) 또는 LAST(최종) 값을 선택하여 지정한 작업을 수행한다. 집계 함수 또는 분석함수에서 이용될 수 있다.
    049.FIRST_VALUE * 그룹(또는 전체 데이터) 별로 데이터를 정렬 후 지정한 변수의 첫 번째 값을 반환한다.
    060.LAG 이 함수는 Self 조인 작업 수행하지 않고, 하나의 테이블을 접근하면서 여러 개의 행에 동시에 접근(Access)하여 작업한다. LAG 함수는 현재 위치를 기준으로 이전에 지정한 행에 접근하여 작업을 수행한다.
    061.LAST FIRST and LAST함수는 매우 유사한 함수이다. 양쪽 함수 모두 그룹별 또는 전체 데이터에 대하여 데이터를 지정한 정렬 순서 기준으로 정렬한 후 그룹별(또는 전체 데이터) FIRST(최초) 또는 LAST(최종) 값을 선택하여 지정한 작업을 수행한다.
    063.LAST_VALUE * 윈도우 그룹(또는 전체 데이터) 별로 데이터를 정렬 후 지정한 변수의 마지막 값을 반환한다.
    064.LEAD 이 함수는 Self 조인 작업을 수행하지 않고, 하나의 테이블을 접근하면서 여러 개의 행에 동시에 접근(Access)하여 작업한다. 쿼리에서 수행되는 행의 Series나 커서의 위치를 지정하면, LEAD 함수는 해당 위치 이후에 존재하는 물리적 Offset의 행에 ACCESS 한다.
    075.MAX * 지정한 인수를 기준으로 그룹 또는 전체 데이터에 대한 최댓값을 반환한다.
    077.MIN * 지정한 인수를 기준으로 그룹 또는 전체 데이터에 대한 인수의 최솟값을 반환한다.
    091.NTILE 그룹 내에서 정렬된 데이터를 expr에 의해 지정된 bucket의 수로 분할하여, 각 행을 적절한 bucket의 번호를 부여하여 할당한다.
    099.PERCENT_RANK 인수로 지정한 값의 그룹 내의 위치를 나타내는 백분위 순위(순위 퍼센트, Percent rank)를 반환한다.
    100.PERCENTILE_CONT 연속된 분포 모델을 가정하여 인수로 지정한 백분위 값에 해당하는 값을 계산하는 역 분포 함수(inverse distribution function)이다.
    101.PERCENTILE_DISC 이산 분포 모형을 가정하는 역 분포 함수이다. 사용자가 지정한 백분위수에 해당하는 데이터 값을 검색하고, 정확하게 일치하는 데이터 값이 없으면 지정한 백분위 값의 주변 데이터 정렬 옵션에 따라 우선순위가 빠른 바로 앞의 관측치 값을 반환한다. 
    108.RANK 값의 그룹에서 값의 순위를 계산한다. 반환되는 데이터형은 NUMBER이다.
    109.RATIO_TO_REPORT 개별 그룹에서 관측치 합에 대한 개별 관측치 값의 상대적 비율(구성비, 점유율, Share)을 계산한다.  만약 expr이 NULL이라면, ratio-to-report값은 NULL이다.
    117.REGR_ (Linear Regression) Functions * 선형 회귀 함수는 정규 최소 제곱 회귀 선상을 수치 쌍의 세트에 적합한다.  집계 함수와 분석함수로 이용할 수 있다.
    122.ROW_NUMBER 파티션 그룹별 또는 전체 데이터에 대하여 order_by_clause에서 지정된 행의 정렬 순위대로 1로 시작하는 중복을 허용하지 않는 유일한(unique) 순서 값을 할당한다. (파티션에서 각 행 또는 쿼리에 의해서 반환되는 각 행에 대하여)
    144.STDDEV * 수치형 인수 expr의 표본표준편차(sample standard deviation)를 반환한다.
    146.STDDEV_SAMP * 누적 표본 표준편차(Cumulative sample standard deviation)를 계산하고, 표본 분산의 제곱근 값(Square root of the sample variance)을 반환한다.
    148.SUM * 그룹 또는 전체 데이터에 대한 수치형 인수 expr에 대한 값의 합을 반환한다.
    195.VAR_POP * 수치형 변수에서 Null 값들을 제거한 후에 해당 변수의 모집단 분산(population variance)을 반환한다. 집계 함수와 분석 함수를 이용할 수 있다.
    196.VAR_SAMP * 지정한 변수에서 null들을 제거한 후에 수치형 변수의 표본 분산(sample variance)을 반환한다. 집계 함수와 분석 함수로 이용 가능하다.
    197.VARIANCE *  expr의 분산을 반환한다. 

     


    17. Object 참조 함수

    함수명 설명
    040.DEREF 인수 expr의 오브젝트 참조(object reference)를 반환한다. 이 경우 expr은 오브젝트에 REF를 반환한다.
    074.MAKE_REF object 식별자가 주 키를 기반으로 하는 object 테이블에서 object view의 행 또는 object 표의 테이블에 대한 REF를 생성한다.
    112.REF 인수로써 오브젝트 테이블 또는 오브젝트 뷰의 행과 연관된 상관 변수(테이블 별명)를 취한다.
    113.REFTOHEX 인수 expr의 값을 16진수로 변환한다.
    194.VALUE 인수로 object 테이블의 행과 연관된 상관 변수(table alias)를 취하여, 객체 테이블(object table)에 저장된 객체 인스턴스(object instance)를 반환한다.

     


    18. 모델 함수

     

    처음메뉴로
    함수명 설명
    034.CV CV함수는 내부행 측정에 대해 유효하다. CV함수는 SELECT 구문의 model구문에서만 이용되고, model 룰의 오른쪽에서만 사용할 수 있다. 룰의 왼쪽 편에서 오른쪽으로 이동한 디멘젼 열의 현재 값을 반환한다.
    059.ITERATION_NUMBER 모델 규칙에 따라 완료된 반복을 표시하는 정수를 반환한다.
    105.PRESENTNNV 행상호간 계산에 대해 유용하다. PRESENTNNV함수는 단지 SELECT구문의 model_clause에서 이용되고, model rule의 오른쪽에서 사용될수 있다.
    106.PRESENTV 행 상호 간 계산에 대해 유용하다. PRESENTNNV 함수는 단지 SELECT구문의 model_clause에서 이용되고, model rule의 오른쪽에서 사용될 수 있다.
    107.PREVIOUS 행 상호 간 계산에 유용하다. 이 함수는 SELECT문장의 model_clause과 model_rules_clause의 ITERATE.. [UNTIL] 구문에서 이용될 수 있다. 각 iteration의 초기에 cell_reference의 값을 반환한다.

     


    19. 기타 단일행 함수

     

    처음메뉴로
    함수명 설명
    152.SYS_EXTRACT_UTC time zone offset 또는 time zone region name을 포함한 datetime 값으로부터 협정 세계시간(세계 표준시간) UTC (Coordinated Universal Time—formerly Greenwich Mean Time)을 추출한다.
    190.UPDATEXML XMLType인스턴스와 XPath값의 쌍으로 인자를 지정하여서 업데이트된 값을 가지는 XMLType 인스턴스를 반환한다.

     


    * SQL 무료온라인강의 리스트 - 30개 교육과정(WITHMOOC)[온라인강의링크]

     

    [자기주도온라인평생학습] SQL 무료온라인강의 리스트 - 30개 교육과정(WITHMOOC) » 기서무나구물 &

    ※ SQL 완벽정복! ✨SQL 튜토리얼! - Playdata Encore (YouTube)※ mysql 기초강의 – SONOL_코딩.소프트웨어놀이터 (YouTube)※ 토크ON세미나 47차. SQL 데이터분석 입문 | T아카데미 – SKplanet Tacademy※ SQL JOIN –

    statwith.com

     


    반응형

    댓글