SnowConvert AI - PostgreSQL - 기본 제공 함수

적용 대상

  • PostgreSQL

  • Greenplum

  • Netezza

참고

기본 제공 함수 및 그와 동등한 Snowflake 함수에 대한 자세한 내용은 [일반적인 기본 제공 함수](../general/ built-in-functions.md)도 참조하세요.

집계 함수

집계 함수는 입력 값 세트에서 단일 결과 값을 계산합니다. (PostgreSQL 언어 참조 집계 함수).

PostgreSQL

Snowflake

AVG

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/avg”>AVG</a></p><p></p><p><em>참고:</em> PostgreSQL <em>및 Snowflake는 데이터 타입 반올림/형식 지정으로 인해 다른 정밀도/소수점을 표시할 수 있습니다.</em></p>

COUNT

COUNT

MAX

MAX

MEDIAN

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/median”>MEDIAN</a> </p><p></p><p><em>참고<strong>: Snowflake는 날짜 유형의 사용을 허용하지 않지만</strong> </em>PostgreSQL<em>은 허용합니다. (</em> <a href=”../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresqlFDM.md#ssc-fdm-pg0013”>SSC-FDM-PG0013</a><em> 참조).</em></p>

MIN

MIN

PERCENTILE_CONT

PERCENTILE_CONT

STDDEV/STDDEV_SAMP (expression)

STDDEV/STDDEV_SAMP (expression)

STDDEV_POP (expression)

STDDEV_POP (expression)

SUM

SUM

VARIANCE/VAR_SAMP (expression)

VARIANCE/VAR_SAMP (expression)

VAR_POP (expression)

VAR_POP (expression)

조건식

PostgreSQL

Snowflake

COALESCE ( value [, …] )

COALESCE ( expression, expression, … )

GREATEST ( value [, …] )

GREATEST_IGNORE_NULLS ( <expr1> [, <expr2> … ] )

LEAST ( value [, …] )

LEAST_IGNORE_NULLS ( <expr1> [, <expr2> … ])

NULLIF

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/nullif”>NULLIF</a> <br><br><em>참고: PostgreSQL의 NULLIF는 Snowflake와 달리 일부 문자열 비교에서 후행 공백을 무시합니다. 따라서 변환이 진행되면서 동등성을 위해 RTRIM이 추가됩니다.</em></p>

데이터 타입 형식 지정 함수

데이터 타입 형식 지정 함수를 사용하면 값을 한 데이터 타입에서 다른 데이터 타입으로 쉽게 변환할 수 있습니다. 이러한 각 함수의 경우, 첫 번째 인자는 항상 형식을 지정할 값이고 두 번째 인자에는 새 형식에 대한 템플릿이 포함됩니다. (PostgreSQL 언어 참조 데이터 타입 형식 지정 함수).

PostgreSQL

Snowflake

TO_CHAR

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/to_char”>TO_CHAR</a> </p><p></p><p><em>참고: 이 함수에 대한 Snowflake의 지원은 부분적입니다(</em> <a href=”broken-reference”><em>SSC-EWI-PG0005</em></a><em> 참조).</em></p>

TO_DATE

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/to_date”>TO_DATE</a> </p><p></p><p><em>참고: Snowflake의 <code>TO_DATE</code>는 </em>PostgreSQL’<em>의 느슨한 <code>TO_DATE</code>와 달리 ‘20010631’(6월에는 30일까지 있음)과 같은 유효하지 않은 날짜에 실패합니다. Snowflake에서는 <code>TRY_TO_DATE</code>를 사용하고 NULL을 반환하여 이러한 사례를 처리합니다. (</em> <a href=”broken-reference”><em>SSC-EWI-PG0005</em></a><em>,</em> <a href=”../../general/technical-documentation/issues-and-troubleshooting/functional-difference/generalFDM.md#ssc-fdm-0032”><em>SSC-FDM-0032</em></a><em> 참조).</em></p>

날짜 및 시간 함수

PostgreSQL

Snowflake

AT TIME ZONE ‘timezone’

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/convert_timezone”>CONVERT_TIMEZONE</a> ( &#x3C;source_tz> , &#x3C;target_tz> , &#x3C;source_timestamp_ntz> )</p><p><br></p><p><a href=”https://docs.snowflake.com/en/sql-reference/functions/convert_timezone”>CONVERT_TIMEZONE</a> ( &#x3C;target_tz> , &#x3C;source_timestamp> ) </p><p></p><p><em>참고:</em> PostgreSQL<em>의 기본값은 UTC이고 Snowflake 함수에는 명시적 UTC 사양이 필요합니다. 따라서 대상 타임존으로 추가됩니다.</em></p>

CURRENT_DATE

CURRENT_DATE()

DATE_PART/PGDATE_PART

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/date_part”>DATE_PART</a> </p><p></p><p><em>참고: 이 함수는 Snowflake에서 부분적으로 지원됩니다. (</em> <a href=”broken-reference”><em>SSC-EWI-PGOOO5</em></a><em> 참조).</em></p>

DATE_TRUNC

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/date_trunc”>DATE_TRUNC</a> </p><p></p><p><em>참고: 유효하지 않은 날짜 부분 형식은 Snowflake 호환 형식으로 변환됩니다.</em> </p>

TO_TIMESTAMP

TO_TIMESTAMP

EXTRACT

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/extract”>EXTRACT</a><br><br><em>참고:</em> 지원되는 파트타임 또는 날짜 시간: DAY, DOW, DOY, EPOCH, HOUR, MINUTE, MONTH, QUARTER, SECOND, WEEK, YEAR. </p>

TIMEZONE

CONVERT_TIMEZONE

참고

PostgreSQL 타임스탬프는 기본적으로 마이크로초 정밀도(6자리)로 설정됩니다. Snowflake의 기본값은 나노초 정밀도(9자리)입니다. ALTER SESSION을 사용하여 필요에 따라 정밀도를 조정합니다(예: ALTERSESSIONSETTIMESTAMP_OUTPUT_FORMAT= 'YYYY-MM-DDHH24:MI:SS.FF2';). 사용된 데이터 타입에 따라 정밀도 손실이 발생할 수 있습니다.\ \ 일부 형식은 Snowflake와 호환되지 않으므로 계정 매개 변수 DATE_INPUT_FORMAT 또는 TIME_INPUT_FORMAT를 조정하여 플랫폼 간에 기능 동등성을 유지할 수 있습니다.

JSON 함수

PostgreSQL

Snowflake

JSON_EXTRACT_PATH_TEXT

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/json_extract_path_text”>JSON_EXTRACT_PATH_TEXT</a> </p><p></p><p><em>참고:</em> </p><ol><li>PostgreSQL<em>은 줄 바꿈, 탭 및 캐리지 리턴 문자를 문자 그대로 처리합니다. Snowflake에서는 이러한 문자를 해석합니다.</em></li><li><em>Snowflake 함수에서 중첩된 오브젝트에 액세스하려면 JSON 리터럴 및 점으로 구분된 경로가 필요합니다.</em></li><li><em>변수에 공백이 있는 경로는 따옴표로 묶어야 합니다.</em></li></ol>

수학 함수

PostgreSQL

Snowflake

ACOS

ACOS

ASIN

ASIN

ATAN

ATAN

ATAN2

ATAN2

CBRT

CBRT

CEIL/CEILING

CEIL

COS

COS

COT

COT

DEGREES

DEGREES

LN

LN

EXP

EXP

FLOOR

FLOOR

LOG

LOG

MOD

MOD

PI

PI

POWER/POW

POWER/POW

RADIANS

RADIANS

RANDOM

RANDOM

ROUND

ROUND

SIN

SIN

SIGN

SIGN

SQRT

SQRT

TAN

TAN

TRUNC

TRUNC

참고

PostgreSQL 및 Snowflake 결과는 소수 자릿수가 다를 수 있습니다.

문자열 함수

문자열 함수는 문자열 또는 문자열로 평가되는 식을 처리하고 조작합니다. (PostgreSQL 언어 참조 문자열 함수).

PostgreSQL

Snowflake

ASCII

ASCII

BTRIM

TRIM

CHAR_LENGTH

LENGTH

CHARACTER_LENGTH

LENGTH

CHR

CHR

CONCAT

CONCAT

INITCAP

INITCAP

LEFT/RIGHT

LEFT/RIGHT

LOWER

LOWER

OCTET_LENGTH

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/octet_length”>OCTET_LENGTH</a> </p><p></p><p><em>참고:</em> <em>결과는 플랫폼마다 다를 수 있습니다(</em><a href=”../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresqlFDM.md#ssc-fdm-pg0013”>SSC-FDM-PG0013</a><em> 참조).</em></p>

QUOTE_IDENT (string)

CONCAT (‘”’, string, ‘”’)

REGEXP_REPLACE

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/regexp_replace”>REGEXP_REPLACE</a> </p><p></p><p><em>참고: 이 함수에는 사용자가 <code>p</code> 값으로 표시되는 PCRE(Perl 호환 정규식) 언어를 사용하여 패턴을 해석할 수 있는 <code>parameters</code> 인자가 포함되어 있습니다. 이 인자는 문제를 방지하기 위해 제거됩니다</em>. <em>(</em> <a href=”../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI.md#ssc-ewi-0009”><em>SSC-EWI-0009</em></a><em>,</em> <a href=”../../general/technical-documentation/issues-and-troubleshooting/functional-difference/generalFDM.md#ssc-fdm-0032”><em>SC-FDM-0032</em></a><em>,</em> <a href=”../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresqlFDM.md#ssc-fdm-pg0011”><em>SSC-FDM- PG0011</em></a><em> 참조).</em></p>

REPEAT

REPEAT

REPLACE

REPLACE

REVERSE

REVERSE

SPLIT_PART

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/split_part”>SPLIT_PART</a> </p><p></p><p><em>참고: Snowflake 및 </em>PostgreSQL<em>은 SPLIT_PART를 대/소문자를 구분하지 않는 데이터 정렬과 다르게 처리합니다.</em></p>

STRPOS (string, substring )

POSITION ( <expr1> IN <expr> )

SUBSTRING

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/substr”><em>SUBSTRING</em></a> </p><p></p><p><em>참고:</em> Snowflake는 이 함수를 부분적으로 지원합니다. 양수가 아닌 <code>start_position</code>을 포함하는 PostgreSQL의 <code>SUBSTRING</code>은 <code>start_position + number_characters</code>를 계산합니다(결과가 양수가 아닌 경우 ‘’ 반환). Snowflake의 동작은 다릅니다.</p>

TRANSLATE

TRANSLATE

TRIM

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/trim”><em>TRIM</em></a> </p><p></p><p><em>참고:</em> PostgreSQL<em>은 자르기를 위해 키워드(BOTH, LEADING, TRAILING)를 사용하지만 Snowflake는 TRIM, LTRIM, RTRIM을 사용합니다.</em></p>

UPPER

UPPER

윈도우 함수

PostgreSQL

Snowflake

AVG

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/avg”><em>AVG</em></a> </p><p></p><p><em>참고: AVG 반올림/형식 지정은 </em>PostgreSQL<em>과 Snowflake의 데이터 타입에 따라 다를 수 있습니다.</em></p>

COUNT

COUNT

DENSE_RANK

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/dense_rank”>DENSE_RANK</a> </p><p></p><p><em>참고: ORDER BY는 Snowflake에서 필수입니다. 누락된 절은 <code>ORDER BY 1</code>로 대체됩니다.</em></p>

FIRST_VALUE

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/first_value”>FIRST_VALUE</a> </p><p></p><p><em>참고: Snowflake에는 ORDER BY가 필요하며 누락된 절은 <code>ORDER BY &#x3C;expr>을 가져옵니다.</code></em></p>

LAG

LAG

LAST_VALUE

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/last_value”>LAST_VALUE</a> </p><p></p><p><em>참고: Snowflake에는 ORDER BY가 필요하며 누락된 절은 <code>ORDER BY &#x3C;expr>을 가져옵니다.</code></em></p>

LEAD

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/lead”>LEAD</a> </p><p></p><p><em>참고:</em> PostgreSQL<em>은 상수 또는 표현식 오프셋을 허용하지만 Snowflake는 상수 오프셋만 허용합니다</em>.</p>

NTH_VALUE

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/nth_value”>NTH_VALUE</a> </p><p></p><p><em>참고: ORDER BY는 Snowflake에서 필수입니다. 누락된 절은 <code>ORDER BY 1</code>로 대체됩니다.</em></p>

NTILE

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/ntile”>NTILE</a> </p><p></p><p><em>참고: ORDER BY는 Snowflake에서 필수입니다. 누락된 절은 <code>ORDER BY 1</code>로 대체됩니다. (</em> <a href=”../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresqlFDM.md#ssc-fdm-pg0013”>SSC-FDM-PG0013</a><em> 참조).</em></p>

PERCENT_RANK

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/percent_rank”>PERCENT_RANK</a> </p><p></p><p><em>참고: ORDER BY는 Snowflake에서 필수입니다. 누락된 절은 <code>ORDER BY 1</code>로 대체됩니다.</em></p>

PERCENTILE_CONT

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/percentile_cont”>PERCENTILE_CONT</a> </p><p></p><p><em>참고: 반올림은 플랫폼마다 다릅니다.</em></p>

PERCENTILE_DISC

PERCENTILE_DISC

RANK

RANK

ROW_NUMBER

<p><a href=”https://docs.snowflake.com/en/sql-reference/functions/row_number”>ROW_NUMBER</a> </p><p></p><p><em>참고: ORDER BY는 Snowflake에서 필수입니다. 누락된 절은 <code>ORDER BY 1</code>로 대체됩니다.</em></p>