メインコンテンツまでスキップ

カスタム計算関数リファレンス

このページでは、AI/BI ダッシュボードのカスタム計算でサポートされているすべての関数の完全なリファレンスを提供します。カスタム計算の使用方法の詳細については、 「カスタム計算とは何ですか?」を参照してください。

集計関数

すべての計算済みメジャーは集計する必要があります。 次の集計操作がサポートされています。

注記

集計関数でDISTINCTキーワードを使用して、集計に一意の値のみを含めます。さらに、 FILTER(WHERE condition)句を任意の集計関数に追加して、計算に含まれる値を制限することもできます。

関数

説明

任意(式)

グループ内のexprの少なくとも 1 つの値がtrueである場合はtrueを返します。

任意の値(式)

行のグループに対してexprの値を返します。

approx_count_distinct(expr[, relativeSD])

expr内の異なる値の推定数を返します。

approx_percentile ([ALL | DISTINCT] expr, パーセンタイル [, 精度])

指定されたパーセンタイルにおけるexprのおおよそのパーセンタイル値を返します。

平均(式)

列または式内の計算された平均を返します。

bool_or(式)

exprの少なくとも 1 つの値がtrueの場合、 trueを返します。

corr(式1, 式2)

expr1expr2間のピアソン相関係数を返します。

count(*)

グループ内の行数を返します。

count(DISTINCT式)

グループ内の一意の行の数を返します。

count_if(式)

指定された条件を満たす行の数を返します。

first(expr[,ignoreNull])

グループのexprの最初の値を返します。

first_value(式[, ignoreNull])

グループのexprの最初の値を返します。

last(expr[,ignoreNull])

グループのexprの最後の値を返します。

last_value(式[, ignoreNull])

グループのexprの最後の値を返します。

listagg(式[, 区切り文字])

グループ内の null 以外の値の連結を返します。

最大(式)

列または式の最大値を返します。

max_by(式1, 式2)

expr2の最大値に関連付けられたexpr1の値を返します。

平均(式)

列または式内の計算された平均を返します。

中央値(式)

値のセットの中央値を返します。

min(expr)

列または式の最小値を返します。

min_by(式1, 式2)

expr2の最小値に関連付けられたexpr1の値を返します。

mode(expr [, 決定論的])

exprの最も頻繁な値を返します。

percentile(expr, percentage [,frequency])

グループ内の指定されたパーセンタイルにおけるexprの正確なパーセンタイル値を返します。

percentile_approx(式, パーセンテージ[, 精度])

指定されたパーセンタイルにおけるexprのおおよそのパーセンタイル値を返します。

regr_slope(y, x)

グループ内の null 以外のペアの線形回帰直線の傾きを返します。

いくつかの(式)

グループ内のexprの少なくとも 1 つの値がtrueである場合はtrueを返します。

std(式)

値のセットの標準偏差を返します。

stddev(式)

値のセットの標準偏差を返します。

stddev_pop(式)

一連の値の母標準偏差を返します。

stddev_samp(式)

値のセットのサンプル標準偏差を返します。

string_agg(式[, 区切り文字])

グループ内の null 以外の文字列値の連結を返します。

合計(式)

列または式の値の合計を返します。

分散(式)

値のセットの分散を返します。

算術演算

次の算術演算を使用して式を組み合わせることができます。

オペレーション

説明

式1 % 式2

expr1 expr2で割った余りを返します。

multiplier * multiplicand

2 つの式の積を返します。

式1 + 式2

expr1expr2の合計を返します。

+ 式

式の値を返します。

式1 - 式2

expr1からexpr2を減算した差を返します。

- 式

式の負の値を返します。

dividend/divisor

dividendをdivisorで除算した結果を返します。

被除数 除数

dividenddivisorで割った値の整数部分を返します。

abs(式)

数値式の絶対値を返します。

acos(式)

exprの逆余弦(アークコサイン)を返します。

asin(式)

exprの逆正弦(アークサイン)を返します。

bround(式[, d])

HALF_EVEN 丸めモードを使用して、小数点以下d桁に丸められたexprを返します。

ceil(expr) または ceiling(expr)

expr以上の最小の整数を返します。

cos(式)

exprのコサインを返します。

exp(式)

e をexpr乗した値を返します。

床(式)

expr以下の最大の整数を返します。

ln(式)

式の自然対数を返します。

log(基数, 式)

指定されたbaseによるexprの対数を返します。

log10(式)

式の 10 を底とする対数を返します。

mod(式1, 式2)

expr1 expr2で割った余りを返します。

nullifzero(式)

exprが 0 の場合はNULLを返し、それ以外の場合はexprを返します。

円周率()

円周率の値を返します。

pmod(式1, 式2)

expr1 mod expr2の正の値を返します。

pow(expr1, expr2) または power(expr1, expr2)

expr1expr2乗した結果を返します。

ラジアン(式)

度をラジアンに変換します。

rand([シード])

0 (含む) から 1 (含まない) までの範囲で均一分布のランダム値を返します。

round(式[, d])

HALF_UP 丸めモードを使用して、小数点以下d桁に丸められたexprを返します。

符号(式)

数値式の符号を返します。

sin(式)

exprの正弦を返します。

sqrt(式)

exprの平方根を返します。

try_add(式1, 式2)

2 つの値を加算します。エラーが発生した場合は、 NULLを返します。

try_divide(dividend, divisor)

dividendをdivisorで割ります。エラーが発生した場合は、 NULLを返します。

try_multiply(multiplier, multiplicand)

2 つの数値を乗算します。エラーが発生した場合は、 NULLを返します。

try_subtract(式1, 式2)

expr1からexpr2減算します。エラーが発生した場合は、 NULLを返します。

zeroifnull(式)

exprNULLの場合は 0 を返し、それ以外の場合はexprを返します。

Boolean関数と演算子

カスタム計算では、基本的な比較とBoolean演算子がサポートされます。 次の演算子と関数がサポートされています。

オペレーション

説明

式1 != 式2

expr1 expr2と等しくない場合はtrueを返します。

!式

論理的ではありません。

式1と式2

expr1expr2のビットごとの AND を返します。

式1 && 式2

expr1expr2両方がtrueの場合、 trueを返します。

式1 <=> 式2

非 null オペランドに対しては等号演算子と同じ結果を返しますが、両方がnullの場合はtrueを返し、一方がnullの場合はfalseを返します。

式1 <> 式2

expr1 expr2と等しくない場合はtrueを返します。

式1 < 式2

expr1expr2より小さい場合はtrueを返します。

式1 <= 式2

expr1expr2以下の場合はtrueを返します。

式1 = 式2

expr1 expr2に等しい場合はtrueを返します。

式1 == 式2

expr1 expr2に等しい場合はtrueを返します。

式1 > 式2

expr1expr2より大きい場合はtrueを返します。

式1 >= 式2

expr1expr2以上の場合はtrueを返します。

式1 ^ 式2

expr1expr2のビットごとの排他的論理和を返します。

式1 | 式2

expr1expr2のビットごとの OR を返します。

式1 || 式2

expr1またはexpr2の少なくとも 1 つがtrueの場合、 trueを返します。

~式

exprのビットごとの NOT を返します。

式1と式2

expr1expr2両方がtrueの場合、 trueを返します。

下限と上限の間の式

expr指定された範囲内にあるかどうかをテストします (特殊な構文)。

str ilikeパターン

str patternと一致する場合 (大文字と小文字は区別されません)、 trueを返します。ilike(str, pattern [, escapeChar])としても使用できます。

(値1、値2、...) の式

exprリスト内の任意の値と一致するかどうかをテストします (特別な構文)。

isnan(式)

exprが NaN (数値ではない) の場合はtrueを返します。

isnotnull(式)

exprNULLでない場合はtrueを返します。

isnull(式)

exprNULLの場合、 trueを返します。

strのようなパターン

str patternと一致する場合はtrueを返します。like(str, pattern [, escapeChar])としても使用できます。

式ではない

論理否定(前置演算子)。not(expr)としても使用できます。

式1または式2

expr1またはexpr2の少なくとも 1 つがtrueの場合、 trueを返します。

str 正規表現 正規表現

str正規表現regexpと一致する場合はtrueを返します。

regexp_like(文字列, 正規表現)

str正規表現regexpと一致する場合はtrueを返します。

str rlike 正規表現

str正規表現regexpと一致する場合はtrueを返します。

キャスト関数

値を指定された型にキャストするには、次の関数を使用します。

関数

説明

式::型

exprターゲット データ型typeにキャストします。

bigint(式)

exprBIGINTにキャストします。

ブール値(式)

exprBOOLEANにキャストします。

キャスト(式 AS 型)

exprターゲット データ型typeにキャストします。

日付(式)

exprDATEにキャストします。

小数点(式[, p[, s]])

expr精度pとスケールsDECIMALにキャストします。

倍精度(式)

exprDOUBLEにキャストします。

float(式)

exprFLOATにキャストします。

int(式)

exprINTにキャストします。

文字列(式)

exprSTRINGにキャストします。

タイムスタンプ(式)

exprTIMESTAMPにキャストします。

to_date(式[, 書式])

exprfmt日付に変換します。

to_timestamp(式[, fmt])

expr fmtでタイムスタンプに変換します。

try_cast(式 AS 型)

exprターゲット データ型typeに安全にキャストします。

try_to_timestamp(式[, フォーマット])

expr fmtで解析して、タイムスタンプを安全に取得します。

日付、タイムスタンプ、間隔関数

日付、タイムスタンプ、間隔を操作するには、次の関数を使用します。

関数

説明

add_months(開始日, 月数)

start_date後のnum_months日付を返します。

curdate()

現在の日付を返します。

現在の日付()

現在の日付を返します。

現在のタイムスタンプ()

現在のタイムスタンプを返します。

date_add(開始日, 日数)

start_date後のnum_days日付を返します。

date_diff(終了日、開始日)

startDateからendDateまでの日数を返します。

日付形式(式, 形式)

タイムスタンプをfmt形式の文字列に変換します。

date_part(フィールド、ソース)

日付またはタイムスタンプから、年、月、日などの特定の部分を抽出します。

date_sub(開始日, 日数)

start_dateよりnum_days前の日付を返します。

date_trunc(fmt, ソース)

日付またはタイムスタンプを、年や月などの指定された単位に切り捨てます。

dateadd(単位, 値, 式)

指定された時間間隔を日付またはタイムスタンプに追加します。

datediff(終了日、開始日)

startDateからendDateまでの日数を返します。

日(式)

日付またはタイムスタンプから月内の日を返します。

曜日名(式)

日付またはタイムスタンプから曜日の名前を返します。

月日(式)

日付またはタイムスタンプから月内の日を返します。

曜日(式)

日付またはタイムスタンプから曜日を返します (1 = 日曜日、7 = 土曜日)。

dayofyear(式)

日付またはタイムスタンプから年内の日を返します。

抽出(ソースからのフィールド)

日付またはタイムスタンプの一部を抽出します。

from_unixtime(unix_time [, fmt])

秒数を Unix エポックからタイムスタンプに変換します。

from_utc_timestamp(タイムスタンプ、タイムゾーン)

指定されたタイムスタンプを UTC として解釈し、指定されたタイムゾーンに変換します。

日付を取得する()

現在のタイムスタンプを返します。

時間(式)

タイムスタンプの時間部分を返します。

last_day(式)

日付またはタイムスタンプが属する月の最終日を返します。

make_date(年、月、日)

年、月、日のフィールドから日付を作成します。

make_timestamp(年、月、日、時、分、秒[、タイムゾーン])

年、月、日、時、分、秒、およびオプションでタイムゾーン フィールドからタイムスタンプを作成します。

分(式)

タイムスタンプの分部分を返します。

月(式)

日付またはタイムスタンプの月の部分を返します。

months_between(タイムスタンプ1, タイムスタンプ2 [, roundOff])

timestamp1からtimestamp2までの月数を返します。

next_day(開始日, 曜日)

start_dateより後でday_of_weekという名前の最初の日付を返します。

今()

現在のタイムスタンプを返します。

四半期(式)

日付またはタイムスタンプの四半期 (1 ~ 4) を返します。

秒(式)

タイムスタンプの秒の要素を返します。

時間差(終了日、開始日)

単位で測定された 2 つのタイムスタンプの差を返します。

timestamp_micros(マイクロ秒)

Unix エポックからのマイクロ秒数からタイムスタンプを作成します。

timestamp_millis(ミリ秒)

Unix エポックからのミリ秒数からタイムスタンプを作成します。

timestamp_seconds(秒)

Unix エポックからの秒数からタイムスタンプを作成します。

timestampadd(単位, 値, タイムスタンプ)

指定された時間間隔をタイムスタンプに追加します。

timestampdiff(単位, 開始, 終了)

単位で測定された 2 つのタイムスタンプの差を返します。

to_date(式[, 書式])

exprfmt日付に変換します。

to_timestamp(式[, fmt])

expr fmtでタイムスタンプに変換します。

to_unix_timestamp(式[, フォーマット])

指定された時間の Unix タイムスタンプを返します。

to_utc_timestamp(タイムスタンプ、タイムゾーン)

指定されたタイムゾーンの指定されたタイムスタンプを解釈し、UTC に変換します。

trunc(式, 形式)

日付の時間部分を、フォーマット モデルfmtで指定された単位に切り捨てたexprを返します。

unix_micros(タイムスタンプ)

Unix エポックからのマイクロ秒数を返します。

unix_millis(タイムスタンプ)

Unix エポックからのミリ秒数を返します。

unix_seconds(タイムスタンプ)

Unix エポックからの秒数を返します。

unix_timestamp([式[, 形式]])

指定された時間の Unix タイムスタンプを返します。

曜日(式)

日付またはタイムスタンプから曜日を返します (0 = 月曜日、6 = 日曜日)。

weekofyear(式)

日付またはタイムスタンプから年内の週を返します。

年(式)

日付またはタイムスタンプの年の部分を返します。

文字列関数

文字列を変換するには、次の関数を使用します。日時文字列を変換するには、 「キャスト関数」を参照してください。

関数

説明

base64(式)

引数を base64 文字列に変換します。

char(式)

指定された UTF-16 コード ポイントの文字を返します。

charindex(substr, str [, pos])

位置posより後のstr内のsubstrの最初の出現位置を返します。

連結(式1, 式2 [, ...])

引数の連結を返します。

concat_ws(sep [, expr1 [, ...]])

sepで区切られた文字列の連結を返します。

含む(左, 右)

leftrightが見つかった場合はtrueを返します。

convert_timezone(ソースTz、ターゲットTz、ソースTs)

タイムスタンプsourceTs sourceTzタイムゾーンからtargetTzタイムゾーンに変換します。

デコード(式, 文字セット)

文字セットエンコーディングcharSetを使用してバイナリexpr文字列に変換します。

終了(左, 右)

left rightで終わる場合はtrueを返します。

find_in_set(str, str_array)

カンマ区切りのリスト内の指定された文字列のインデックス (1 から始まる) を返します。

format_number(式, スケール)

expr #,###,###.##のようにフォーマットし、小数点scale桁に丸めます。

format_string(フォーマット, 式[, ...])

printf 形式の文字列から書式設定された文字列を返します。

16進数(式)

expr 16 進数に変換します。

initcap(文字列)

各単語の最初の文字を大文字にしたstrを返します。

instr(文字列、部分文字列)

str内でsubstrが最初に出現する位置を返します。

lcase(文字列)

すべての文字を小文字に変更したstrを返します。

左(文字列, 長さ)

文字列strから左端のlen文字を返します。

len(式)

文字列またはバイナリ式の長さを返します。

長さ(式)

文字列またはバイナリ式の長さを返します。

levenshtein(str1, str2 [, 閾値])

指定された 2 つの文字列間のレーベンシュタイン距離を返します。

位置検索(部分文字列, 文字列[, 位置])

位置posより後のstr内のsubstrの最初の出現位置を返します。

下(文字列)

すべての文字を小文字に変更したstrを返します。

lpad(文字列, 長さ[, パッド])

長さがlenになるように、左側にpadを埋め込んだstr返します。

ltrim(str [, trimStr])

strから先頭の文字を削除します。

md5(式)

MD5 128 ビット チェックサムを 16 進文字列として返します。

parse_url(url, 抽出する部分[, キー])

urlから一部を抽出します。

位置(部分文字列, 文字列[, 位置])

位置posより後のstr内のsubstrの最初の出現位置を返します。

printf(フォーマット, 式[, ...])

printf 形式の文字列から書式設定された文字列を返します。

regexp_count(文字列, 正規表現)

正規表現regexp str内で一致する回数を返します。

regexp_extract(文字列, 正規表現[, idx])

regexpに一致するグループを抽出します。

regexp_instr(文字列, 正規表現)

str内のregexpの最初の一致の位置を返します。

regexp_replace(文字列, 正規表現, 繰り返し[, 位置])

regexpに一致するstrのすべての部分文字列をrepに置き換えます。

regexp_substr(文字列, 正規表現)

str内の正規表現regexpに一致する部分文字列を返します。

繰り返し(文字列, n)

strn回繰り返す文字列を返します。

replace(文字列, 検索文字列 [, 置換文字列])

str内のすべてのsearchreplaceに置き換えます。

逆(文字列)

文字の順序を逆にしたstrを返します。

右(文字列, 長さ)

文字列strから右端のlen文字を返します。

rtrim([trimStr,] 文字列)

末尾の文字を削除したstrを返します。

sha2(式, ビット長)

SHA-2 ファミリのハッシュ関数を返します。

split_part(文字列、区切り文字、部分文字列)

str delimiterで分割し、要求された部分を返します。

startswith(左, 右)

left rightで始まる場合はtrueを返します。

substr(文字列, 位置[, 長さ])

posから始まり長さlenstrの部分文字列を返します。

部分文字列(str, pos[, len])

posから始まり長さlenstrの部分文字列を返します。

部分文字列インデックス(文字列、区切り文字、数)

delimcount個前の部分文字列を返します。

to_char(式[, 書式])

expr文字列に変換します。

to_number(式[, 書式])

文字列expr数値に変換します。

翻訳(入力, 変換元, 変換先)

from内の文字をto内の対応する文字に置き換えてinputを翻訳します。

トリム(str [, trimStr])

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

ucase(文字列)

すべての文字を大文字に変更したstrを返します。

上(str)

すべての文字を大文字に変更したstrを返します。

url_encode(文字列)

URL クエリで使用するためにstrをエンコードします。

その他の機能

以下の機能もサポートされています。

関数

説明

集計以上

時間範囲またはその他の順序付けられたセットにわたってメジャーの値を計算します。

CASE 式 { WHEN opt1 THEN res1 } [...] [ELSE def] END

expr等しい最初のoptNに対してresNを返し、一致するものがない場合はdef返します。

CASE { WHEN cond1 THEN res1 } [...] [ELSE def] END

最初に true と評価されたcondNに対してresNを返し、何も見つからない場合はdef返します。

合体(式1, 式2 [, ...])

最初の null 以外の引数を返します。

デコード(式, 検索, 結果 [, 検索, 結果]... [, デフォルト])

expr各検索値と比較し、対応する結果を返します。

get_json_object(json_txt, パス)

指定されたpathjson_txtから JSON オブジェクトを抽出します。

最大(式[, ...])

すべての最大値を返します。

ハッシュ(式1 [, 式2 ...])

引数のハッシュ値を返します。

if(条件, 真値, 偽値)

conditiontrueの場合はtrue_valueを返し、それ以外の場合はfalse_valueを返します。

iff(条件、真値、偽値)

conditiontrueの場合はtrue_valueを返し、それ以外の場合はfalse_valueを返します。

ifnull(式1, 式2)

expr1nullの場合はexpr2を返し、それ以外の場合はexpr1を返します。

json_array_length(json配列)

最も外側の JSON 配列内の要素の数を返します。

最小(式[, ...])

すべてのすべての最小値を返します。

単調に増加するID()

単調に増加する 64 ビット整数を返します。

nullif(式1, 式2)

expr1expr2と等しい場合はNULLを返し、それ以外の場合はexpr1を返します。

nvl(式1, 式2)

expr1NULLの場合はexpr2を返し、それ以外の場合はexpr1を返します。

nvl2(式1, 式2, 式3)

expr1NULLでない場合はexpr2を返し、それ以外の場合はexpr3を返します。

schema_of_json( JSON [, オプション])

JSON 文字列の DDL 形式でスキーマを返します。