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

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

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

集計関数

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

注記

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

関数

説明

any(expr)

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

any_value(expr)

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

approx_count_distinct(expr[, relativeSD])

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

approx_percentile ([ALL | DISTINCT] expr, percentile [, accuracy])

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

avg(expr)

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

bool_or(expr)

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

corr(expr1, expr2)

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

count(*)

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

count(DISTINCT expr)

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

count_if(expr)

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

first(expr[,ignoreNull])

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

first_value(expr [, ignoreNull])

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

last(expr[,ignoreNull])

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

last_value(expr [, ignoreNull])

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

listagg(expr [, delimiter])

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

max(expr)

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

max_by(expr1, expr2)

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

mean(expr)

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

median(expr)

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

min(expr)

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

min_by(expr1, expr2)

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

mode(expr [, deterministic ])

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

percentile(expr, percentage [,frequency])

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

percentile_approx(expr, percentage [, accuracy])

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

regr_slope(y, x)

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

some(expr)

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

std(expr)

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

stddev(expr)

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

stddev_pop(式)

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

stddev_samp(expr)

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

string_agg(expr [, delimiter])

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

sum(expr)

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

variance(expr)

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

算術演算

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

オペレーション

説明

expr1 % expr2

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

multiplier * multiplicand

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

expr1 + expr2

expr1expr2の合計を返します。

+ expr

式の値を返します。

expr1 - expr2

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

- expr

式の負の値を返します。

dividend/divisor

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

dividend div divisor

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

abs(expr)

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

acos(expr)

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

asin(expr)

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

bround(expr [, d])

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

ceil(expr) または ceiling(expr)

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

cos(expr)

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

exp(expr)

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

floor(expr)

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

ln(expr)

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

log(base, expr)

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

log10(expr)

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

mod(expr1, expr2)

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

nullifzero(expr)

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

pi()

円周率の値を返します。

pmod(expr1, expr2)

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

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

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

radians(expr)

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

rand([seed])

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

round(expr [, d])

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

sign(expr)

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

sin(expr)

exprの正弦を返します。

sqrt(expr)

exprの平方根を返します。

try_add(expr1, expr2)

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

try_divide(dividend, divisor)

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

try_multiply(multiplier, multiplicand)

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

try_subtract(expr1, expr2)

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

zeroifnull(expr)

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

Boolean関数と演算子

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

オペレーション

説明

expr1 != expr2

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

!expr

論理的NOT。

expr1 & expr2

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

expr1 && expr2

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

expr1 <=> expr2

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

expr1 <> expr2

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

expr1 < expr2

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

式1 <= 式2

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

expr1 = expr2

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

expr1 == expr2

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

expr1 > expr2

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

expr1 >= expr2

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

expr1 ^ expr2

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

expr1 | expr2

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

expr1 || expr2

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

~expr

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

expr1 and expr2

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

expr between lower and upper

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

str ilikeパターン

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

expr in (value1, value2, ...)

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

isnan(expr)

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

isnotnull(expr)

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

isnull(expr)

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

str likeパターン

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

not expr

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

expr1 or expr2

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

str regexp 正規表現

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

regexp_like(str, regexp)

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

str rlike regexp

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

キャスト関数

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

関数

説明

expr :: type

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

bigint(expr)

exprBIGINTにキャストします。

boolean(expr)

exprBOOLEANにキャストします。

cast(expr AS type)

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

date(expr)

exprDATEにキャストします。

decimal(expr [, p [, s]])

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

double(expr)

exprDOUBLEにキャストします。

float(expr)

exprFLOATにキャストします。

int(expr)

exprINTにキャストします。

string(expr)

exprSTRINGにキャストします。

timestamp(expr)

exprTIMESTAMPにキャストします。

to_date(expr [, fmt])

exprfmt日付に変換します。

to_timestamp(expr [, fmt])

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

try_cast(expr AS type)

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

try_to_timestamp(expr [, fmt])

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

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

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

関数

説明

add_months(start_date, num_months)

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

curdate()

現在の日付を返します。

current_date()

現在の日付を返します。

current_timestamp()

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

date_add(start_date, num_days)

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

date_diff(endDate, startDate)

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

date_format(expr, fmt)

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

date_part(field, source)

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

date_sub(start_date, num_days)

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

date_trunc(fmt, source)

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

dateadd(unit, value, expr)

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

datediff(endDate, startDate)

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

day(expr)

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

dayname(expr)

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

dayofmonth(expr)

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

dayofweek(expr)

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

dayofyear(expr)

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

extract(field FROM source)

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

from_unixtime(unix_time [, fmt])

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

from_utc_timestamp(timestamp, timezone)

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

getdate()

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

hour(expr)

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

last_day(expr)

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

make_date(year, month, day)

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

make_timestamp(year, month, day, hour, min, sec [, timezone])

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

minute(expr)

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

month(expr)

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

months_between(timestamp1, timestamp2 [, roundOff])

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

next_day(start_date, day_of_week)

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

now()

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

quarter(expr)

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

second(expr)

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

timediff(endDate, startDate)

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

timestamp_micros(microseconds)

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

timestamp_millis(milliseconds)

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

timestamp_seconds(seconds)

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

timestampadd(unit, value, timestamp)

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

timestampdiff(unit, start, end)

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

to_date(expr [, fmt])

exprfmt日付に変換します。

to_timestamp(expr [, fmt])

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

to_unix_timestamp(expr [, fmt])

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

to_utc_timestamp(timestamp, timezone)

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

trunc(expr, fmt)

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

unix_micros(timestamp)

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

unix_millis(timestamp)

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

unix_seconds(timestamp)

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

unix_timestamp([expr [, fmt]])

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

weekday(expr)

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

weekofyear(expr)

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

year(expr)

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

文字列関数

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

関数

説明

base64(expr)

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

char(expr)

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

charindex(substr, str [, pos])

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

concat(expr1, expr2 [, ...])

引数の連結を返します。

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

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

contains(left, right)

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

convert_timezone(sourceTz, targetTz, sourceTs)

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

decode(expr, charSet)

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

endswith(left, right)

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

find_in_set(str, str_array)

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

format_number(expr, scale)

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

format_string(format, expr [, ...])

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

hex(expr)

expr 16 進数に変換します。

initcap(str)

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

instr(str, substr)

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

lcase(str)

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

left(str, len)

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

len(expr)

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

length(expr)

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

levenshtein(str1, str2 [, threshold])

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

locate(substr, str [, pos])

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

lower(str)

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

lpad(str, len [, pad])

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

ltrim(str [, trimStr])

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

md5(expr)

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

parse_url(url, partToExtract [, key])

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

position(substr, str [, pos])

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

printf(format, expr [, ...])

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

regexp_count(str, regexp)

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

regexp_extract(str, regexp [, idx])

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

regexp_instr(str, regexp)

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

regexp_replace(str, regexp, rep [, position])

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

regexp_substr(str, regexp)

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

repeat(str, n)

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

replace(str, search [, replace])

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

reverse(str)

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

right(str, len)

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

rtrim([trimStr,] str)

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

sha2(expr, bitLength)

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

split_part(str, delimiter, partNum)

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

startswith(left, right)

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

substr(str, pos [, len])

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

substring(str, pos [, len])

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

substring_index(str, delim, count)

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

to_char(expr [, fmt])

expr文字列に変換します。

to_number(expr [, fmt])

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

translate(input, from, to)

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

trim(str [, trimStr])

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

ucase(str)

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

upper(str)

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

url_encode(str)

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

その他の機能

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

関数

説明

AGGREGATE OVER

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

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

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

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

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

coalesce(expr1, expr2 [, ...])

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

decode(expr, search, result [, search, result]... [, default])

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

get_json_object(json_txt, path)

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

greatest(expr [, ...])

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

hash(expr1 [, expr2 ...])

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

if(condition, true_value, false_value)

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

iff(condition, true_value, false_value)

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

ifnull(式1, 式2)

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

json_array_length(jsonArray)

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

least(expr [, ...])

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

monotonically_increasing_id()

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

nullif(expr1, expr2)

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

nvl(expr1, expr2)

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

nvl2(expr1, expr2, expr3)

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

schema_of_json(json [, options])

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