ARRAY_MIN

ARRAY_MIN (배열 최솟값)

입력 ARRAY가 주어질 때, SQL NULL이 아닌 값 중 가장 낮은 값을 가진 요소를 반환해요. 입력 ARRAY가 비어 있거나 SQL NULL 요소만 포함하면 이 함수는 NULL을 반환해요.

출처: Snowflake SQL Reference - ARRAY_MIN

본문

구문

ARRAY_MIN( <array> )

인자

array

입력 ARRAY예요.

반환 값

이 함수는 SQL NULL이 아닌 값 중 가장 낮은 값을 가진 요소를 담은 VARIANT를 반환해요.

array가 NULL이거나, 비어 있거나, SQL NULL 요소만 포함하면 함수는 NULL을 반환해요.

사용 시 참고 사항

  • SQL NULL은 반구조적 데이터의 명시적 null 값(예: JSON 데이터의 JSON null)과 구별돼요. 가장 낮은 값을 가진 요소를 찾을 때 명시적 null 값은 고려돼요.

  • 함수는 배열의 요소들을 비교해 반환할 요소를 결정해요. 함수는 같은 데이터 타입의 요소 또는 다음 데이터 타입의 요소 비교를 지원해요.

    • NUMBER와 FLOAT 데이터 타입의 요소.

    • TIMESTAMP_LTZ와 TIMESTAMP_TZ 데이터 타입의 요소.

    배열에 다른 데이터 타입의 요소가 있으면 아래 예시처럼 요소를 공통 데이터 타입으로 캐스팅하세요.

예시

다음 예시는 ARRAY 상수에서 가장 낮은 값을 가진 요소를 담은 VARIANT를 반환해요.

SELECT ARRAY_MIN([20, 0, NULL, 10, NULL]);
+------------------------------------+
| ARRAY_MIN([20, 0, NULL, 10, NULL]) |
|------------------------------------|
| 0                                  |
+------------------------------------+

다음 예시는 입력 ARRAY가 비어 있으면 함수가 NULL을 반환함을 보여줘요.

SELECT ARRAY_MIN([]);
+---------------+
| ARRAY_MIN([]) |
|---------------|
| NULL          |
+---------------+

다음 예시는 입력 ARRAY가 SQL NULL만 포함하면 함수가 NULL을 반환함을 보여줘요.

SELECT ARRAY_MIN([NULL, NULL, NULL]);
+-------------------------+
| ARRAY_MIN([NULL, NULL]) |
|-------------------------|
| NULL                    |
+-------------------------+

데이터 타입이 다른 요소들로 이루어진 배열의 최솟값을 구하려면 요소들을 같은 데이터 타입으로 캐스팅하세요. 다음 예시는 배열의 최솟값을 구하기 위해 DATE 요소를 TIMESTAMP 요소로 캐스팅해요.

SELECT ARRAY_MIN([date1::TIMESTAMP, timestamp1]) AS array_min
 FROM (
 VALUES ('1999-01-01'::DATE, '2023-12-09 22:09:26.000000000'::TIMESTAMP),
        ('2023-12-09'::DATE, '1999-01-01 22:09:26.000000000'::TIMESTAMP)
 AS t(date1, timestamp1)
 );
+---------------------------+
| ARRAY_MIN                 |
|---------------------------|
| "1999-01-01 00:00:00.000" |
| "1999-01-01 22:09:26.000" |
+---------------------------+

더 알아보기