メインコンテンツへスキップ

サポートされている関数

Adrenaline DataFlowでは、以下の関数を使用できます。

一般的な関数

関数名

説明

構造

IFNULL

null以外の場合は最初のパラメーターを返し、nullの場合は2番目のパラメーターを返します。

IFNULL(ANY, ANY) -> ANY

NULLIF

2つの入力式が等しい場合はnullを返し、等しくない場合は最初の式を返します。

NULLIF(ANY, ANY) -> ANY

NVL

COALESCE に似ていますが、2つの入力式のみを受け入れます。

NVL(ANY, ANY) -> ANY

数学関数

関数名

説明

構造

ADDDATE

日付/日時に間隔を加算します。入力が日付で、間隔が2日以上にわたる場合は日付を返し、それ以外の場合は日時を返します。DATE_ADDの同義語です。

ADDDATE(TIME, INTERVAL) -> TIME

CEILING

数値を受け取り、切り上げて最も近い整数を返します。

CEILING(NUMERIC) -> LONG

DATE_ADD

日付/日時に間隔を加算します。入力が日付で、間隔が2日以上にわたる場合は日付を返し、それ以外の場合は日時を返します。ADDDATEの同義語です。

DATE_ADD(TIME, INTERVAL) -> TIME

DATE_SUB

日付/日時から間隔を減算します。入力が日付で、間隔が2日以上にわたる場合は日付を返し、それ以外の場合は日時を返します。SUBDATEの同義語です。

DATE_SUB(TIME, INTERVAL) -> TIME

FLOOR

数値を受け取り、切り捨てて最も近い整数を返します。

FLOOR(NUMERIC) -> LONG

LN

入力パラメーターの自然対数を返します。

LN(NUMERIC) -> DOUBLE

LOG

10を底とする入力パラメーターの対数を返します。

LOG(NUMERIC) -> DOUBLE

POWER

最初の数値を底、2番目の数値を指数としたべき乗を返します。

POWER(NUMERIC, NUMERIC) -> DOUBLE

RAND

0 <= x < 1の範囲で均一に分布した乱数xを返します。任意のタイプのパラメーターをシードとして受け取ります。

RAND(ANY) -> DOUBLE

RANDOM

0 <= x < 1の範囲で均一に分布した乱数xを返します。

RANDOM() -> DOUBLE

ROUND

元の有効桁数と小数点以下桁数を維持したまま、指定した小数位の数に値を四捨五入します。0.5以上の端数は切り上げられます。0.5未満の端数は切り捨てられます。

ROUND(NUMERIC) -> DOUBLE

SQRT

入力パラメーターの平方根を返します。結果が実数でない場合はnullを返します。

SQRT(NUMERIC) -> DOUBLE

SUBDATE

日付/日時から間隔を引きます。入力が日付で、間隔が2日以上にわたる場合は日付を返し、それ以外の場合は日時を返します。DATE_SUBの同義語です。

SUBDATE(TIME, INTERVAL) -> TIME

WIDTH_BUCKET

ヒストグラム範囲を同じサイズの間隔(バケット)に分割する等幅ヒストグラムを作成します。さらに、バケット下限未満の値は0を返し、バケット上限以上の値はbucket_count +1を返します。整数値を返します。

WIDTH_BUCKET(NUMERIC|TIME expression, NUMERIC|TIME min, NUMERIC|TIME max, LONG bucket_count) -> LONG

日付関数

関数名

説明

構造

ADDTIME

日付または日時に時刻値を追加します。時刻は、文字列の日時値のタイムスタンプコンポーネントとして表されます。

ADDTIME(TIME, TIME_LITERAL) -> TIME

CONVERT_TZ

日時の値のタイムゾーンを別のタイムゾーンに変換します。タイムゾーンには、時間オフセット、タイムゾーンコード、またはタイムゾーンのフルネーム(-06:00、MDT、America/Denverなど)を指定できます。

CONVERT_TZ(DATETIME, STRING from_tz, STRING to_tz) -> DATETIME

DATE

日時の式から日付の部分を抽出します。

DATE(TIME) -> DATE

DATE_TRUNC

日時の式を指定した部分で切り捨てます。

DATE_TRUNC(STRING date_part, TIME) -> TIME

DATEDIFF

2つの日付の値の間の日数を返します。

DATEDIFF(TIME, TIME) -> LONG

DAYNAME

日付の曜日のフルネームを返します。

DAYNAME(TIME) -> STRING

DAYOFMONTH

日付の日を返します。

DAY(TIME) -> LONG

DAYOFWEEK

日付の曜日番号を返します。戻り値はWEEKDAYと同じです。

DAYOFWEEK(TIME) -> LONG

DAYOFYEAR

日付の通日番号を返します。

DAYOFYEAR(TIME) -> LONG

FROM_DAYS

日付の数値表現(エポックからの日数)から日付を返します。 TO_DAYS を参照してください。

FROM_DAYS(NUMERIC) -> DATE

FROM_UNIXTIME

UNIXベースの時間(エポックからの秒数)から日付を返します。オプションで、出力フォーマットのパターンを含めることができます。 UNIX_TIMESTAMP を参照してください。

FROM_UNIXTIME(NUMERIC, [STRING pattern]) -> DATETIME

HOUR

日時の値の時の部分を返します。

HOUR(TIME) -> LONG

LAST_DAY

特定の日付または日時の月の最終日を返します。

LAST_DAY(TIME) -> DATE

MONTH

特定の日付または日時の月番号を返します。

MONTH(TIME) -> LONG

MONTHNAME

特定の日付または日時の月のフルネームを返します。

MONTHNAME(TIME) -> STRING

NOW

クエリリクエストコンテキストのタイムゾーンの現在の時刻を返します。

NOW() -> DATETIME

PERIOD_ADD

期間に月数を追加します。期間は、YYYYMMまたはYYMMのフォーマットの数値です。結果は、長いフォーマットYYYYMMで表示されます。

PERIOD_ADD(NUMERIC period, NUMERIC months) -> LONG

PERIOD_DIFF

2つの期間の月数の差。期間は、YYYYMMまたはYYMMのフォーマットの数値です。2つの期間のフォーマットは同じにする必要があります。結果は月数です。

PERIOD_DIFF(NUMERIC, NUMERIC) -> LONG

QUARTER

特定の日付/日時の四半期(1~4)を返します。

QUARTER(TIME) -> LONG

SEC_TO_TIME

秒数を受け取り、時間のフォーマット(HH:MM:SS)で返します。

SEC_TO_TIME(NUMERIC) -> STRING

SECOND

日時値の秒部分を返します。

SECOND(TIME) -> LONG

STR_TO_DATE

文字列を解析して日付にします。フォーマットが「%T」に等しいか「%H」で始まる場合は、文字列を返します。それ以外の場合は、フォーマット文字列が10文字を超えるときは日時を返し、それ以外のときは日付を返します。

STR_TO_DATE(STRING input, STRING format) -> TIME|STRING

SUBDATE

日付/日時から間隔を引きます。入力が日付で、間隔が2日以上にわたる場合は日付を返し、それ以外の場合は日時を返します。

SUBDATE(TIME, INTERVAL) -> TIME

SUBTIME

日付/日時から秒数を引きます。秒は、秒未満の値を表す小数値にすることができます。

SUBTIME(TIME, NUMERIC) -> DATETIME

SYSDATE

現在の日時を返します。

SYSDATE() -> DATETIME

TIME

日時の時間の部分を、HH:MM:SSのフォーマットの文字列で返します。

TIME(TIME) -> STRING

TIME_FORMAT

日時の時間の部分を文字列としてフォーマットします。

TIME_FORMAT(TIME, STRING format) -> STRING

TIME_TO_SEC

日時の時間の部分を秒に変換します。

TIME_TO_SEC(TIME) -> LONG

TIMEDIFF

2つの時間/日時の時差をHH:MM:SSの文字列のフォーマットで返します。

TIMEDIFF(TIME, TIME) -> STRING

TIMESTAMP

引数にもとづいて日時の値を返します。入力は日付または有効な日時の文字列のいずれかにする必要があります。

TIMESTAMP(TIME) -> DATETIME

TO_DATE

入力を日付値に変換します。

TO_DATE(TIME) -> DATE

TO_DAYS

日付の式と西暦0年の間の日数を返します。

TO_DAYS(TIME) -> LONG

UNIX_TIMESTAMP

エポック(特定の日付のUNIXタイムスタンプ)から秒数を返します。

UNIX_TIMESTAMP(TIME) -> LONG

WEEK

特定の日付の週を返します。オプションで、2番目の「mode」パラメーターを指定して、使用する週の開始日とISO週を使用するかどうかを指定できます。

オプションパラメーターは2桁の数値です。

* 第1桁は1または2です。1月1日からの週は1、ISO標準の週は2になります。

* 第2桁は週の開始曜日を示します。日曜日は1、月曜日は2など。

現在サポートされているのは11と22のみです。

WEEK(TIME[, LONG mode]) -> LONG

WEEKDAY

特定の日付/日時の曜日番号を返します。戻り値はDAYOFWEEKと同じです。

WEEKDAY(TIME) -> LONG

YEAR

日付/日時の現在の年を返します。オプションのmodeパラメーターも指定することができます。 WEEK を参照してください。

YEAR(TIME[, LONG mode]) -> LONG

YEARWEEK

年と週の数値をYYYYWWとして返します。オプションのmodeパラメーターも指定することができます。 WEEK を参照してください。

YEARWEEK(TIME[, LONG mode]) -> LONG

文字列関数

関数名

説明

構造

DATE_FORMAT

日付を文字列値にフォーマットします。

DATE_FORMAT(TIME, STRING format) -> STRING

INITCAP

各単語の最初の文字を大文字にします。単語は、空白文字または英数字以外の文字で区切られます。

INITCAP(STRING) -> STRING

INSTR

別の文字列の検索文字列の位置(1ベース)を返します。文字列が見つからない場合は0を返します。

INSTR(STRING source, STRING search_string) -> STRING

LEFT

文字列の先頭からX個の文字を返します。

LEFT(STRING, LONG) -> STRING

LENGTH

文字列の長さを返します。

LENGTH(STRING) -> LONG

LOWER

すべての文字を小文字にした文字列を返します。

LOWER(STRING) -> STRING

LPAD

文字列を別の文字列の左側に一定の長さまで埋め込みます。

LPAD(STRING, LONG total_length, STRING pad_string) -> STRING

OCTET_LENGTH

文字列のバイト数を返します。

OCTET_LENGTH(STRING) -> STRING

REPLACE

文字列のサブストリングすべてを新しい文字列に置き換えます。

REPLACE(STRING, STRING from, STRING to) -> STRING

RIGHT

文字列の末尾からX個の文字を返します。

RIGHT(STRING, LONG) -> STRING

RPAD

文字列を別の文字列の右側に合計X文字まで埋め込みます。

RPAD(STRING, LONG total, STRING pad_string) -> STRING

SPLIT_PART

文字列を特定の文字で分割し、要求された部分(1ベース)を返します。

SPLIT_PART(STRING, STRING delimiter, LONG part)

SUBSTRING

start_pos(1ベース)から開始して指定された長さのサブストリングを返します。

SUBSTRING(STRING, LONG start_pos, LONG length) -> STRING

TO_CHAR

指定されたフォーマットにもとづいて、式を文字列に変換します。

TO_CHAR(ANY, STRING format) -> STRING

TO_NUMBER

文字列を数値に変換します。オプションのパターンを指定することができます。パターンに小数が含まれていない場合、結果はLONG型になります。それ以外の場合、結果はDOUBLE型になります。

TO_NUMBER(STRING, STRING pattern) -> NUMERIC

TRIM

文字列の先頭と末尾から空白文字を削除します。

TRIM(STRING) -> STRING

UPPER

文字列のすべての文字を大文字に変換します。

UPPER(STRING) -> STRING

集計関数

関数名

説明

構造

APPROXIMATE_MEDIAN

数値のグループの近似中央値を計算します。エラー許容値はエンジンによって異なる場合があります。

APPROXIMATE_MEDIAN(NUMERIC) -> DOUBLE

APPROXIMATE_PERCENTILE

数値のグループの近似パーセンタイルを計算します。パーセンタイル値は0から1の間である必要があります。エラー許容値はエンジンによって異なる場合があります。

APPROXIMATE_MEDIAN(NUMERIC, DOUBLE percentile) -> DOUBLE

AVG

数値のグループの平均を計算します。

AVG(NUMERIC) -> DOUBLE

COUNT

結果セットの行数をカウントします。DISTINCTキーワードを使用すると、渡された式の値が異なる行数がカウントされます。

COUNT([DISTINCT] ANY) -> LONG

LISTAGG

行のグループのnull以外の値を、設定可能な区切り文字で区切られた値のリストに変換します。max_lengthを超えた場合は、オプションのデフォルト値を指定できます。

LISTAGG(ANY[, LONG max_length[, STRING separator[, STRING on_overflow]]]) -> STRING

MAX

式の結果セットグループの最大値を返します。

MAX(ANY) -> ANY

MEDIAN

式の結果セットグループの中央値を返します。数値型でのみ機能します。

MEDIAN(NUMERIC) -> NUMERIC

MIN

式の結果セットグループの最小値を返します。

MIN(ANY) -> ANY

STDDEV

式の結果セットグループの統計標本標準偏差を返します。数値型でのみ機能します。

STDDEV(NUMERIC) -> DOUBLE

STDDEV_POP

式の結果セットグループの統計母標準偏差を返します。数値型でのみ機能します。

STDDEV(NUMERIC) -> DOUBLE

SUM

式の結果セットグループのすべての値の合計を返します。数値型でのみ機能します。

SUM(NUMERIC) -> NUMERIC

VAR_POP

式の結果セットグループの母集団分散を返します。数値型でのみ機能します。

VAR_POP(NUMERIC) -> DOUBLE

CORR

式の結果セットグループの相関係数を返します。数値型でのみ機能します。

CORR(NUMERIC) -> DOUBLE

解析関数

関数名

説明

構造

FIRST_VALUE

特定の式のパーティションの最初の値を返します。ウィンドウのORDER BY句が指定されていない場合、返される値の一貫性は保証されません

FIRST_VALUE(ANY) OVER ([PARTITION BY ANY] [ORDER BY ANY [ASC|DESC]]) -> ANY

LAG

指定されたオフセット(デフォルトは1)にもとづいて、前の行の式の値を返します。オプションで、オフセットがパーティションの範囲外になった場合のデフォルト値を指定できます。

LAG(ANY[, LONG[, ANY]]) OVER ([PARTITION BY ANY] [ORDER BY ANY [ASC|DESC]]) -> ANY

LEAD

指定されたオフセット(デフォルトは1)にもとづいて、次の行の式の値を返します。オプションで、オフセットがパーティションの範囲外になった場合のデフォルト値を指定できます。

LEAD(ANY[, LONG[, ANY]]) OVER ([PARTITION BY ANY] [ORDER BY ANY [ASC|DESC]]) -> ANY

LAST_VALUE

特定の式のパーティションの最後の値を返します。ウィンドウのORDER BY句が指定されていない場合、返される値の一貫性は保証されません

LAST_VALUE(ANY) OVER ([PARTITION BY ANY] [ORDER BY ANY [ASC|DESC]]) -> ANY

MAX

パーティション内の式の最大値を返します。ORDER BY句を指定できます。指定した場合、最大値は現在の行の前の値のみを使用して順序にもとづいて計算されます。

MAX(ANY) OVER ([PARTITION BY ANY] [ORDER BY ANY [ASC|DESC]])

MIN

パーティション内の式の最小値を返します。ORDER BY句を指定できます。指定した場合、最小値は現在の行の前の値のみを使用して順序にもとづいて計算されます。

MIN(ANY) OVER ([PARTITION BY ANY] [ORDER BY ANY [ASC|DESC]])

NTILE

順序付けされたDataSet(パーティション)をウィンドウ内のサブセットの数{value}に均等に分割します。サブセットには、1からパラメーター定数値の値までの番号が付けられます。例えば、定数値が4でパーティションに20行が含まれている場合、NTILEはパーティション行を5行の4つの等しいサブセットに分割します。NTILEは、行に1~4の数値を指定して、各行をサブセットに割り当てます。最初のサブセットの行には1が割り当てられ、次の5つには2が割り当てられるというようになります。

パーティション行の数がサブセットの数で割り切れない場合、行は分散されるため、サブセットがほかのサブセットよりも1行より大きくなることはなく、最小サブセットに余分な行が含まれます。例えば、定数値が4で行数が21の場合、最初のサブセットには6行、2番目のサブセットには5行含まれるというようになります。

サブセットの数が行数よりも多い場合は、行数に等しいサブセットの数が入力され、残りのサブセットは空になります。

NTILE(LONG value) OVER ([PARTITION BY ANY] [ORDER BY ANY [ASC|DESC]]) -> LONG

PERCENTILE

パーセンタイルを計算するための簡略化された構文。式とパーセンタイル値を受け取り、GROUP BY句で分割された解析式に変換します。

PERCENTILE(ANY expression, DOUBLE percentile) -> ANY

PERCENTILE_CONT

各パーティションの一連の値の中で、指定されたパーセンタイルに入る値を返します。

NTILE(DOUBLE percentile) WITHIN GROUP ([PARTITION BY ANY] [ORDER BY ANY [ASC|DESC]]) -> ANY

RANK

OVER式のORDER句にもとづいて、各行を1からパーティション行数までランク付けします。

RANK() OVER ([PARTITION BY ANY] [ORDER BY ANY [ASC|DESC]]) -> LONG

STDDEV

Aggregate STDDEV に似ています。ただし結果セットのパーティションに適用されます。

STDDEV(NUMERIC) OVER ([PARTITION BY ANY] [ORDER BY ANY [ASC|DESC]]) -> DOUBLE

STDDEV_POP

Aggregate STDDEV_POP に似ています。ただし結果セットのパーティションに適用されます。

STDDEV_POP(NUMERIC) OVER ([PARTITION BY ANY] [ORDER BY ANY [ASC|DESC]]) -> DOUBLE

SUM

パーティションの値を合計します。ORDER BYが含まれている場合、合計にはその順序に従って現在の行または現在の行の前の値のみが含まれます。

SUM(NUMERIC) OVER ([PARTITION BY ANY] [ORDER BY ANY [ASC|DESC]]) -> NUMERIC

VAR_POP

Aggregate VAR_POP に似ています。ただし結果セットのパーティションに適用されます。

VAR_POP(NUMERIC) OVER ([PARTITION BY ANY] [ORDER BY ANY [ASC|DESC]]) -> DOUBLE

日本語