ANY_VALUE
구문
ANY_VALUE ( [ DISTINCT | ALL ] expr )
목적
ANY_VALUE는 expr의 단일 비결정론적인(non-deterministic) 값 하나를 반환합니다. 이 함수는 집계 함수로 사용할 수 있습니다.
GROUP BY 절이 포함된 쿼리를 최적화할 때 ANY_VALUE를 사용합니다. ANY_VALUE는 그룹 내에서 표현식의 값을 반환합니다. 이 함수는 최적화되어 첫 번째 값만 반환하도록 설계되었습니다.
이 함수는 모든 입력 행에 대한 비교가 없도록 보장하며, GROUP BY 절의 모든 열을 지정하는 필요성을 없앱니다. 값들을 비교하지 않으므로, ANY_VALUE는 GROUP BY 쿼리에서 MIN 또는 MAX보다 빠르게 값을 반환합니다.
의미론적 규칙
ALL, DISTINCT: 이 키워드들은 ANY_VALUE에서 지원되지만, 쿼리 결과에 영향을 미치지 않습니다.
expr: 표현식은 컬럼, 상수, 바인드 변수, 또는 이들을 포함하는 표현식일 수 있습니다.
표현식 내의 NULL 값은 무시됩니다.
LONG, LOB, FILE, COLLECTION을 제외한 모든 데이터 유형을 지원합니다.
LONG을 사용하면 ORA-00997 오류가 발생합니다.
LOB, FILE, COLLECTION 데이터 유형을 사용하면 ORA-00932 오류가 발생합니다.
ANY_VALUE는 MIN과 MAX와 동일한 규칙을 따릅니다.
GROUP BY 사양에 기반하여 각 그룹 내의 임의의 값을 반환합니다. 그룹의 모든 행이 NULL 표현식 값을 가지면 NULL을 반환합니다.
ANY_VALUE의 결과는 결정론적이지 않습니다.
제약사항
XMLType과 ANYDATA를 지원하지 않습니다.
예제 1-1 ANY_VALUE를 집계 함수로 사용하기
이 예시는 SH 스키마의 GROUP BY 쿼리에서 집계 함수로 ANY_VALUE를 사용합니다.
SELECT c.cust_id, ANY_VALUE(cust_last_name), SUM(amount_sold)
FROM customers c, sales s
WHERE s.cust_id = c.cust_id
GROUP BY c.cust_id;
다음은 쿼리 결과의 일부를 보여줍니다.
CUST_ID ANY_VALUE(CUST_LAST_NAME) SUM(AMOUNT_SOLD)
------- -------------------------- ----------------
6950 Sandburg 78
17920 Oliver 3201
66800 Case 2024
37280 Edwards 2256
109850 Lindegreen 757
3910 Oddell 185
84700 Marker 164.4
26380 Remler 118
11600 Oppy 158
23030 Rothrock 533
42780 Zanis 182
...
630 rows selected.
출처: 오라클 레퍼런스
원문 링크: Oracle ANY_VALUE 함수 문서
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] APPROX_COUNT_DISTINCT - 고유한 개수의 근사치를 반환 (0) | 2023.07.29 |
---|---|
[오라클 레퍼런스 함수] APPROX_COUNT - 근사 개수 반환 (0) | 2023.07.29 |
[오라클 레퍼런스 함수] ADD_MONTHS - 날짜에 개월수 더하기 (0) | 2023.07.28 |
[오라클 레퍼런스 함수] ACOS - 아크 코사인 계산 (0) | 2023.07.28 |
[오라클 레퍼런스 함수] ABS - 숫자의 절대값을 반환 (0) | 2023.07.28 |
댓글