このページでは、AI/BI ダッシュボードのカスタム計算でサポートされているすべての関数の完全なリファレンスを提供します。 カスタム計算の使用方法については、「カスタム計算 とは」を参照してください。
集計関数
計算されたすべての測定値を集計する必要があります。 次の集計操作がサポートされています。
注
集計関数で DISTINCT キーワードを使用して、集計に一意の値のみを含めます。 さらに、 FILTER(WHERE condition) 句を任意の集計関数に追加して、計算に含まれる値を制限できます。
| 機能 | Description |
|---|---|
| any(expr) | グループ内のtrueの少なくとも 1 つの値がexpr場合にtrueを返します。 |
| any_value(expr) | 行のグループに対してexprのいくつかの値を返します。 |
| approx_count_distinct(expr[, relativeSD]) |
expr内の個別の値の推定数を返します。 |
| approx_percentile ([ALL |DISTINCT] expr, percentile [, accuracy]) | 指定したパーセンタイルでの expr のおおよそのパーセンタイル値を返します。 |
| avg(expr) | 列または式の計算平均を返します。 |
| bool_or(expr) |
trueの少なくとも 1 つの値がexprされている場合は、trueを返します。 |
| corr(expr1, expr2) |
expr1とexpr2の間のピアソン相関係数を返します。 |
| count(*) | グループ内の行数を返します。 |
| count(DISTINCT expr) | グループ内の一意の行の数を返します。 |
| count_if(expr) | 指定された条件を満たす行の数を返します。 |
| first(expr [, ignoreNull]) | グループの expr の最初の値を返します。 |
| first_value(expr [, ignoreNull]) | グループの expr の最初の値を返します。 |
| last(expr [, ignoreNull]) (最後の要素を取得する関数で、ignoreNull の指定によりNULLを無視します) | グループの expr の最後の値を返します。 |
| last_value(expr [, ignoreNull]) | グループの expr の最後の値を返します。 |
| listagg(expr [, delimiter]) | グループ内の null 以外の値の連結を返します。 |
| max(expr) | 列または式の最大値を返します。 |
| max_by(expr1, expr2) |
expr1の最大値に関連付けられているexpr2の値を返します。 |
| mean(expr) | 列または式の計算平均を返します。 |
| median(expr) | 値のセットの中央値を返します。 |
| min(expr) | 列または式の最小値を返します。 |
| min_by(expr1, expr2) - 2つの式の内、最小値を選択する |
expr1の最小値に関連付けられているexpr2の値を返します。 |
| mode(expr [, 決定論的]) |
exprの最も頻繁な値を返します。 |
| パーセンタイル(expr, percentage [, frequency]) | グループ内の指定したパーセンタイルでの expr の正確なパーセンタイル値を返します。 |
| percentile_approx(式, 割合 [, 精度]) | 指定したパーセンタイルでの expr のおおよそのパーセンタイル値を返します。 |
| regr_slope(y, x) | グループ内の null 以外のペアの線形回帰直線の傾きを返します。 |
| some(expr) | グループ内のtrueの少なくとも 1 つの値がexpr場合にtrueを返します。 |
| std(expr) | 値のセットの標準偏差を返します。 |
| stddev(expr) | 値のセットの標準偏差を返します。 |
| stddev_pop(expr) | 値のセットの母集団標準偏差を返します。 |
| stddev_samp(expr) | 一連の値の標本標準偏差を返します。 |
| string_agg(expr [, delimiter]) | グループ内の null 以外の文字列値の連結を返します。 |
| sum(expr) | 列または式の値の合計を返します。 |
| variance(expr) | 値のセットの分散を返します。 |
算術演算
式は、次の算術演算と組み合わせることができます。
| Operation | Description |
|---|---|
| expr1 % expr2 |
expr1をexpr2で除算した剰余を返します。 |
| 乗数 * 被乗数 | 2 つの式の積を返します。 |
| expr1 + expr2 |
expr1とexpr2の合計を返します。 |
| + expr | 式の値を返します。 |
| expr1 - expr2 |
expr2から expr1 を減算するときの差を返します。 |
| -Expr | 式の否定値を返します。 |
| dividend / divisor | dividend を divisor で除算した結果を返します。 |
| dividend div divisor |
dividendによるdivisorの除算の整数部分を返します。 |
| abs(expr) | 数値式の絶対値を返します。 |
| acos(expr) |
exprの逆コサイン (アークコサイン) を返します。 |
| asin(expr) |
exprの逆サイン (アークサイン) を返します。 |
| bround(expr [, d]) |
expr を使用して、小数点以下d桁にHALF_EVEN丸めモードで丸めた値を返します。 |
| ceil(expr) または ceiling(expr) |
exprより小さくない最小の整数を返します。 |
| cos(expr) |
exprのコサインを返します。 |
| exp(expr) | e をexpr乗にして返します。 |
| floor(expr) |
exprを超えない最大の整数を返します。 |
| ln(expr) | 式の自然対数を返します。 |
| log(base, expr) | 指定したexprを持つbaseの対数を返します。 |
| log10(expr) | 式の底 10 の対数を返します。 |
| mod(expr1, expr2) |
expr1をexpr2で除算した剰余を返します。 |
| nullifzero(expr) |
NULLが 0 の場合はexprを返し、それ以外の場合はexprを返します。 |
| pi() | pi の値を返します。 |
| pmod(expr1, expr2) | mod expr1の正の値expr2返します。 |
| pow(expr1, expr2) または power(expr1, expr2) |
expr1 を expr2 で累乗した結果を返します。 |
| radians(expr) | 度をラジアンに変換します。 |
| rand([seed]) | 0 (包括) から 1 (排他的) までの範囲の均一分布を持つランダムな値を返します。 |
| round(expr [, d]) - 指定した桁まで数値を四捨五入します。 | 丸めモード expr 使用して小数点以下 d 丸めHALF_UP返します。 |
| sign(expr) | 数値式の符号を返します。 |
| sin(expr) |
exprのサインを返します。 |
| sqrt(expr) |
exprの平方根を返します。 |
| try_add(expr1, expr2) | 2 つの値を追加します。 エラーが発生した場合は、NULLを返します。 |
| try_divide(除数,除数) | dividend を divisor で除算します。 エラーが発生した場合は、NULLを返します。 |
| try_multiply(乗数,多重度) | 2 つの値を乗算します。 エラーが発生した場合は、NULLを返します。 |
| try_subtract(expr1, expr2) |
expr2から expr1 を減算します。 エラーが発生した場合は、NULLを返します。 |
| zeroifnull(expr) |
exprがNULLの場合は 0 を返し、それ以外の場合はexprを返します。 |
ブール関数と演算子
カスタム計算では、基本的な比較演算子とブール演算子がサポートされます。 次の演算子と関数がサポートされています。
| Operation | Description |
|---|---|
| expr1 != expr2 |
trueがexpr1と等しくない場合は、expr2を返します。 |
| !expr | 論理ではありません。 |
| expr1 & expr2 |
expr1とexpr2のビットごとの AND を返します。 |
trueとexpr1の両方がexpr2されている場合は、trueを返します。 |
|
| expr1 <=> expr2 | null 以外のオペランドの等号演算子と同じ結果を返しますが、両方がtrueの場合はnullを返し、falseの場合はnullを返します。 |
| expr1 <> expr2 |
trueがexpr1と等しくない場合は、expr2を返します。 |
| expr1 < expr2 |
trueがexpr1未満の場合は、expr2を返します。 |
| expr1 <= expr2 |
trueがexpr1以下の場合は、expr2を返します。 |
| expr1 = expr2 |
trueがexpr1と等しい場合にexpr2を返します。 |
| expr1 == expr2 |
trueがexpr1と等しい場合にexpr2を返します。 |
| expr1 > expr2 |
trueがexpr1より大きい場合は、expr2を返します。 |
| expr1 >= expr2 |
trueがexpr1以上の場合は、expr2を返します。 |
| expr1 ^ expr2 |
expr1とexpr2のビットごとの排他的 OR を返します。 |
| expr1 |expr2 |
expr1とexpr2のビットごとの OR を返します。 |
| expr1 ||expr2 |
trueまたはexpr1の少なくとも 1 つがexpr2場合にtrueを返します。 |
| ~expr |
exprのビットごとの NOT を返します。 |
| expr1 と expr2 |
trueとexpr1の両方がexpr2されている場合は、trueを返します。 |
| 下と上の間の expr |
exprが指定された範囲内にあるかどうかをテストします (特殊な構文)。 |
| str ilike パターン |
trueがstrと一致する場合にpatternを返します (大文字と小文字は区別されません)。
ilike(str, pattern [, escapeChar])として使用することもできます。 |
| expr in (value1, value2, ...) |
exprがリスト内の任意の値と一致するかどうかをテストします (特殊な構文)。 |
| isnan(expr) |
trueが NaN (数値ではない) の場合は、exprを返します。 |
| isnotnull(expr) |
true が expr でない場合、NULL を返します。 |
| isnull(expr) |
trueがexprされている場合は、NULLを返します。 |
| 文字列のようなパターン |
trueがstrと一致する場合は、patternを返します。
like(str, pattern [, escapeChar])として使用することもできます。 |
| expr ではない | 論理否定 (「not」プレフィックス演算子)
not(expr)として使用することもできます。 |
| expr1 または expr2 |
trueまたはexpr1の少なくとも 1 つがexpr2場合にtrueを返します。 |
| str regexp regexp | 正規表現truestr一致する場合は、regexpを返します。 |
| regexp_like(str, regexp) | 正規表現truestr一致する場合は、regexpを返します。 |
| str rlike regexp | 正規表現truestr一致する場合は、regexpを返します。 |
cast 関数
指定した型に値をキャストするには、次の関数を使用します。
| 機能 | Description |
|---|---|
| expr :: 型 |
expr の値をターゲット データ型 type にキャストします。 |
| bigint(expr) | 値 expr を BIGINTにキャストします。 |
| boolean(expr) | 値 expr を BOOLEANにキャストします。 |
| cast(expr AS 型) |
expr の値をターゲット データ型 type にキャストします。 |
| date(expr) | 値 expr を DATEにキャストします。 |
| decimal(expr [, p [, s]]) | 値exprを精度DECIMALとスケールpでsにキャストします。 |
| double(expr) | 値 expr を DOUBLEにキャストします。 |
| float(expr) | 値 expr を FLOATにキャストします。 |
| int(expr) | 値 expr を INTにキャストします。 |
| string(expr) | 値 expr を STRINGにキャストします。 |
| timestamp(expr) | 値 expr を TIMESTAMPにキャストします。 |
| to_date(expr [, fmt]) |
exprを持つfmtを日付に変換します。 |
| to_timestamp(expr [, fmt]) |
exprとfmtを組み合わせてタイムスタンプに変換します。 |
| try_cast(expr AS 型) |
expr の値をターゲットデータ型 type に安全にキャストします。 |
| try_to_timestamp(expr [, fmt]) # expr を日時形式 (fmt) に変換しようとします。 |
exprを使用してfmtをタイムスタンプに安全に解析します。 |
日付、タイムスタンプ、および間隔の関数
日付、タイムスタンプ、および間隔を操作するには、次の関数を使用します。
| 機能 | Description |
|---|---|
| add_months(開始日, 月数) |
num_months後にstart_dateされる日付を返します。 |
| curdate() | 現在の日付を返します。 |
| current_date() | 現在の日付を返します。 |
| current_timestamp() | 現在のタイムスタンプを返します。 |
| current_timezone() | 現在のセッションのローカル タイムゾーンを返します。 |
| date_add(開始日, 日数) |
num_days後にstart_dateされる日付を返します。 |
| date_diff(endDate, startDate) |
startDateからendDateまでの日数を返します。 |
| date_format(expr, fmt) | タイムスタンプを fmt形式の文字列に変換します。 |
| date_part(フィールド、ソース) | 日付またはタイムスタンプから、年、月、日などの特定の部分を抽出します。 |
| date_sub(start_date, num_days) |
num_daysからstart_date前の日付を返します。 |
| date_trunc(fmt, source) | 日付またはタイムスタンプを、年や月などの指定した単位に切り捨てます。 |
| dateadd(単位, 値, 式) | 指定した時間間隔を日付またはタイムスタンプに追加します。 |
| datediff(endDate, startDate) |
startDateからendDateまでの日数を返します。 |
| day(expr) | 日付またはタイムスタンプから月の日を返します。 |
| dayname(expr) | 日付またはタイムスタンプから曜日の名前を返します。 |
| dayofmonth(expr) | 日付またはタイムスタンプから月の日を返します。 |
| dayofweek(expr) | 日付またはタイムスタンプ (1 = 日曜日、7 = 土曜日) から曜日を返します。 |
| dayofyear(expr) | 日付またはタイムスタンプから年の日を返します。 |
| extract(フィールド FROM ソース) | 日付またはタイムスタンプの一部を抽出します。 |
| from_unixtime(unix_time [, fmt]) | 秒数を Unix エポックからタイムスタンプに変換します。 |
| from_utc_timestamp(timestamp, timezone) | 指定されたタイムスタンプを UTC として解釈し、指定されたタイム ゾーンに変換します。 |
| getdate() | 現在のタイムスタンプを返します。 |
| hour(expr) | タイムスタンプの時間コンポーネントを返します。 |
| last_day(expr) | 日付またはタイムスタンプが属する月の最後の日を返します。 |
| make_date(年、月、日) | 年、月、日の各フィールドから日付を作成します。 |
| make_timestamp(年、月、日、時、分、秒 [, タイムゾーン]) | 年、月、日、時、分、秒、および必要に応じてタイムゾーン フィールドからタイムスタンプを作成します。 |
| 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) | タイムスタンプの 2 番目のコンポーネントを返します。 |
| timediff(endDate, startDate) | 単位で測定された 2 つのタイムスタンプの差を返します。 |
| timestamp_micros(マイクロ秒) | Unix エポック以降のマイクロ秒数からタイムスタンプを作成します。 |
| timestamp_millis(ミリ秒) | Unix エポック以降のミリ秒数からタイムスタンプを作成します。 |
| timestamp_seconds(秒) | Unix エポックからの秒数からタイムスタンプを作成します。 |
| timestampadd(単位, 値, タイムスタンプ) | 指定した時間間隔をタイムスタンプに追加します。 |
| タイムスタンプ差分(単位, 開始, 終了) | 単位で測定された 2 つのタイムスタンプの差を返します。 |
| to_date(expr [, fmt]) |
exprを持つfmtを日付に変換します。 |
| to_timestamp(expr [, fmt]) |
exprとfmtを組み合わせてタイムスタンプに変換します。 |
| to_unix_timestamp(expr [, fmt])(Unixタイムスタンプへ変換する関数) | 指定された時刻の Unix タイムスタンプを返します。 |
| to_utc_timestamp(timestamp, timezone) | 指定されたタイム ゾーン内の指定されたタイムスタンプを解釈し、UTC に変換します。 |
| trunc(expr, fmt) |
exprで書式モデルfmtによって指定された単位に切り捨てられた日付の時刻部分を返します。 |
| 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) | 日付またはタイムスタンプの年のコンポーネントを返します。 |
文字列関数
文字列を変換するには、次の関数を使用します。 datetime 文字列を変換するには、 キャスト関数を参照してください。
| 機能 | Description |
|---|---|
| base64(expr) | 引数を base64 文字列に変換します。 |
| char(expr) | 指定された UTF-16 コード ポイントの文字を返します。 |
| charindex(substr, str [, pos]) |
substrの位置の後にstrでposが最初に出現する位置を返します。 |
| concat(expr1, expr2 [, ...]) | 引数の連結を返します。 |
| concat_ws(sep [, expr1 [, ...]]) |
sepで区切られた文字列の連結を返します。 |
| contains(left, right) |
trueでrightが見つかった場合は、leftを返します。 |
| convert_timezone(sourceTz, targetTz, sourceTs) | タイムスタンプ sourceTs を sourceTz タイム ゾーンから targetTz タイム ゾーンに変換します。 |
| decode(expr, charSet) | 文字セット エンコード exprを使用して、バイナリ charSetを文字列に変換します。 |
| endswith(left, right) |
true が left で終わる場合は、right を返します。 |
| 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) |
substrで最初に発生したstrの位置を返します。 |
| lcase(str) | すべての文字が小文字に変更された str を返します。 |
| left(str, len) | 文字列lenから左端のstr文字を返します。 |
| len(expr) | 文字列またはバイナリ式の長さを返します。 |
| length(expr) | 文字列またはバイナリ式の長さを返します。 |
| levenshtein(str1, str2 [, threshold]) | 指定された 2 つの文字列間の Levenshtein 距離を返します。 |
| locate(substr, str [, pos]) |
substrの位置の後にstrでposが最初に出現する位置を返します。 |
| lower(str) | すべての文字が小文字に変更された str を返します。 |
| lpad(str, len [, pad]) |
strをpadで左詰めしてlenの長さにしたものを返します。 |
| ltrim(str [, trimStr]) |
strから先頭文字を削除します。 |
| md5(expr) | MD5 128 ビット チェックサムを 16 進文字列として返します。 |
| parse_url(url, partToExtract [, key]) |
urlからパーツを抽出します。 |
| position(substr, str [, pos]) |
substrの位置の後にstrでposが最初に出現する位置を返します。 |
| printf(format, expr [, ...]) | printf スタイルの書式指定文字列から書式設定された文字列を返します。 |
| regexp_count(str, regexp) |
regexpで正規表現strが一致する回数を返します。 |
| regexp_extract(str, regexp [, idx]) |
regexpに一致するグループを抽出します。 |
| regexp_instr(str, regexp) |
regexp内のstrの最初の一致の位置を返します。 |
| regexp_replace(str, regexp, rep [, position]) |
strと一致するregexpのすべての部分文字列をrepに置き換えます。 |
| regexp_substr(str, regexp) |
regexp内の正規表現strに一致する部分文字列を返します。 |
| repeat(str, n) |
str
n回繰り返される文字列を返します。 |
| replace(str, search [, replace]) |
searchのすべての出現箇所を、replace内のstrに置き換えます。 |
| reverse(str) | 文字の順序を逆にした str を返します。 |
| right(str, len) | 文字列lenから右端のstr文字を返します。 |
| rtrim([trimStr,] str) | 末尾の文字が削除された str を返します。 |
| sha2(expr, bitLength) | ハッシュ関数の SHA-2 ファミリを返します。 |
| split_part(str, delimiter, partNum) |
strをdelimiterで分割し、要求された部分を返します。 |
| startswith(left, right) |
trueが left で始まる場合は、rightを返します。 |
| substr(str, pos [, len]) | 長さstrのposから始まるlenの部分文字列を返します。 |
| substring(str, pos [, len]) | 長さstrのposから始まるlenの部分文字列を返します。 |
| substring_index(str, delim, count) |
countが出現delim前の部分文字列を返します。 |
| to_char(expr [, fmt]) |
exprを文字列に変換します。 |
| to_number(expr [, fmt])(数値化関数) | 文字列 expr を数値に変換します。 |
| translate(input, from, to) |
input内の文字をfromの対応する文字に置き換えることで、toを変換します。 |
| trim(str [, trimStr]) |
strから先頭と末尾の文字を削除します。 |
| ucase(str) | すべての文字が大文字に変更された str を返します。 |
| upper(str) | すべての文字が大文字に変更された str を返します。 |
| url_encode(str) | URL クエリ パラメーターで使用する str をエンコードします。 |
その他の関数
次の関数もサポートされています。
| 機能 | Description |
|---|---|
| 集計する | メジャーの時間範囲またはその他の順序付けられたセット間で値を計算します。 |
| CASE expr { WHEN opt1 THEN res1 } [...][ELSE def]終わり | 一致しない場合は、resNまたはoptNと等しい最初のexprのdefを返します。 |
| CASE { WHEN cond1 THEN res1 } [...][ELSE def]終わり |
resN が true と評価された場合はそのcondNを返し、どれも該当しない場合はdefを返します。 |
| coalesce(expr1, expr2 [, ...]) | 最初の null 以外の引数を返します。 |
| decode(expr, search, result [, search, result]... [, default]) |
exprを各検索値と比較し、対応する結果を返します。 |
| get_json_object(json_txt, path) | 指定したjson_txtのpathから JSON オブジェクトを抽出します。 |
| greatest(expr [, ...]) | すべてのパラメーターの最大値を返します。 |
| hash(expr1 [, expr2 ...]) | 引数のハッシュ値を返します。 |
| if(条件, 真の値, 偽の値) |
true_valueがcondition場合はtrueを返し、それ以外の場合はfalse_valueを返します。 |
| iff(条件, 真の値, 偽の値) |
true_valueがcondition場合はtrueを返し、それ以外の場合はfalse_valueを返します。 |
| ifnull(expr1, expr2) |
expr2がexpr1の場合はnullを返し、それ以外の場合はexpr1返します。 |
| json_array_length(jsonArray) | 最も外側の JSON 配列内の要素の数を返します。 |
| least(expr [, ...]) | すべてのパラメーターの最小値を返します。 |
| monotonically_increasing_id() | 単調に増加する 64 ビットの整数を返します。 |
| nullif(expr1, expr2) |
NULLがexpr1と等しい場合はexpr2を返し、それ以外の場合はexpr1を返します。 |
| nvl(expr1, expr2) |
expr2がexpr1の場合はNULLを返し、それ以外の場合はexpr1返します。 |
| nvl2(expr1, expr2, expr3) |
expr2がexpr1されていない場合はNULLを返し、それ以外の場合はexpr3返します。 |
| schema_of_json(json [, options]) | JSON 文字列の DDL 形式でスキーマを返します。 |