共用方式為


自訂計算函數參考

此頁面提供 AI/BI 儀表板中自訂計算的所有支援函式的完整參考。 如需如何使用自訂計算的相關資訊,請參閱 什麼是自訂計算?

聚合函數

所有計算量值都必須匯總。 支援下列匯總作業:

備註

DISTINCT 彙總函數中使用關鍵字,在彙總中只包含唯一值。 此外, FILTER(WHERE condition) 子句可以附加至任何彙總函數,以限制計算中包含的值。

功能 Description
any(expr) 如果群組中true至少有一個值是expr,則傳回true
any_value(expr) 傳回某個 expr 值,適用於一組資料列。
approx_count_distinct(expr[, relativeSD]) 傳回 中 expr不同值的估計數目。
approx_percentile([全部 | DISTINCT] expr,percentile,準確度) 傳回指定百分位數的近似百分位數值 expr
平均(expr) 返回計算得出的欄位或表達式中的平均值。
bool_or(expr) 如果至少true有一個值是 expr,則傳回true
corr(expr1, expr2) 傳回 和 expr1之間的 expr2 Pearson 相關係數。
count(*) 傳回群組中的行數。
COUNT(DISTINCT expr) 返回群組中不重複資料列的數目。
count_if(expr) 傳回滿足指定條件的數據列計數。
first(expr [, ignoreNull]) 傳回群組的第一個 值 expr
first_value(expr [, ignoreNull]) 傳回群組的第一個 值 expr
last(expr [,忽略Null]) 傳回群組的最後一個值 expr
last_value(expr [, ignoreNull]) 傳回群組的最後一個值 expr
listagg(expr [, 定界符]) 傳回群組中所有非空值的連接結果。
max(expr) 傳回數據行或表示式中的最大值。
max_by(expr1、expr2) 返回與最大expr1值相關聯的expr2值。
平均值(expr) 返回計算得出的欄位或表達式中的平均值。
中位數(expr) 傳回一組值的中位數。
min(expr) 傳回數據行或表示式中的最小值。
min_by(expr1、expr2) 傳回與expr1最小值相關聯的expr2數值。
模式(expr [, 確定性 ]) 傳回 expr 的最常見值。
percentile(expr, 百分比 [, 頻率]) 傳回群組中指定百分位數的 expr 確切百分位數值。
percentile_approx(expr, 百分比 [, 準確度]) 傳回指定百分位數的近似百分位數值 expr
regr_slope(y, x) 傳回群組中非空值配對的線性迴歸線斜率。
某(expr) 如果群組中true至少有一個值是expr,則傳回true
標準(expr) 傳回一組值的標準偏差。
標準開發(expr) 傳回一組值的標準偏差。
stddev_pop(expr) 傳回一組值的母體標準差。
stddev_samp(expr) 傳回一組值的範例標準差。
string_agg(expr [, delimiter]) 傳回群組中非空值字串的串連。
sum(expr) 傳回數據行或表示式中的值總數。
變異數(expr) 傳回一組值的變異數。

算術運算

您可以結合表示式與下列算術運算:

行動 Description
EXPR1 % EXPR2 傳回除以 expr1expr2餘數。
乘數 * 乘數 傳回兩個表達式的乘積。
expr1 + expr2 傳回 expr1expr2 的總和。
+ expr 傳回表達式的值。
EXPR1 - EXPR2 expr2減去 expr1 時,傳回差異。
- expr 傳回表達式的否定值。
股息 / 除數 傳回被除數除以除數的結果。
股息除數 傳回 dividend 除以 divisor 的整數部分。
ABS(expr) 傳回數值運算式的絕對值。
ACOS(expr) 傳回 的 expr反餘弦 (弧餘弦)。
ASIN(expr) 傳回 的 expr逆正弦 (弧正弦)。
bround(expr [, d]) 採用HALF_EVEN捨入模式,將expr捨入至d小數位數。
CEIL(EXPR) 或上限 (EXPR) 傳回大於或等於expr的最小整數。
cos(expr) 傳回 expr 的餘弦值。
exp(expr) 傳回 e 的 expr 次方。
樓層(expr) 傳回不大於 expr的最大整數。
ln(expr) 傳回運算式的自然對數。
log(基礎,expr) 傳回 的exprbase對數,並指定 。
日誌10(expr) 傳回運算式的以 10 為基數的對數。
mod(expr1, expr2) 傳回除以 expr1expr2餘數。
nullifzero(expr) 如果為 0,則傳回NULL,否則傳回 exprexpr
pi() 傳回 pi 的值。
pmod(expr1、expr2) 返回 expr1 除以 expr2 的正餘數值。
POW(expr1, expr2) 或 power(expr1, expr2) 傳回expr1expr2次方的結果。
radians(expr) 將度數轉換為弧度。
蘭德([種子]) 傳回隨機值,其均勻分佈範圍為 0 (含) 到 1 (不含)。
圓形(expr [, d]) 使用四捨五入模式傳回 expr 四捨五入到 d 小數位位HALF_UP。
符號(expr) 傳回數值運算式的符號。
sin(expr) 傳回 expr 的正弦值。
sqrt(expr) 傳回 expr 的平方根。
try_add(expr1, expr2) 將兩個值相加。 如果發生錯誤,則會傳回 NULL
try_divide(除數,除數) 將被除數除以除數。 如果發生錯誤,則會傳回 NULL
try_multiply(乘數、乘數) 將兩個數位相乘。 如果發生錯誤,則會傳回 NULL
try_subtract(expr1, expr2) expr2減去 expr1。 如果發生錯誤,則會傳回 NULL
zeroifnull(expr) 如果exprNULL,則傳回 0,否則傳回expr

布林函數和運算子

自訂計算支援基本比較和布林運算子。 支援下列運算子和函數:

行動 Description
expr1 != expr2 如果true不等於expr1,則傳回expr2
!expr 不合邏輯。
expr1 和 expr2 傳回expr1expr2的位元位AND值。
expr1 &; expr2 如果 trueexpr1 都是 expr2,則傳回 true
expr1 <=> expr2 傳回與非空值運算元的相等運算子相同的結果,但如果兩者都是 true,則傳回 null;如果其中一個是 false,則傳回 null
表達式1 <> 表達式2 如果true不等於expr1,則傳回expr2
表達式1 < 表達式2 如果true小於 expr1則傳回expr2
expr1 <= expr2 如果true小於或等於expr1,則傳回expr2
expr1 = expr2 true 等於 expr1 時,返回 expr2
EXPR1 == EXPr2 true 等於 expr1 時,返回 expr2
表達式1 > 表達式2 如果true大於 expr1則傳回expr2
expr1 >= expr2 如果true大於或等於expr1,則傳回expr2
運算式1 ^ 運算式2 傳回 的位元互斥或。
expr1 |expr2 傳回 expr1expr2 的位元運算 OR。
expr1 ||expr2 如果trueexpr1中至少有一個是expr2,則傳回true
~expr 傳回 expr 的按位 NOT。
expr1 和 expr2 如果 trueexpr1 都是 expr2,則傳回 true
下、上之間的expr 測試是否 expr 落在指定範圍內(特殊語法)。
str ilike 模式 如果true相符str(不區分大小寫),則傳回pattern。 也可以用作 ilike(str, pattern [, escapeChar])
expr in (value1, value2, ...) 測試是否 expr 符合清單中的任何值 (特殊語法)。
伊斯南(expr) 如果是 NaN (不是數字) ,則true傳回。expr
isnotnull(expr) 如果 true 不是 expr,則傳回 NULL
isnull(expr) trueexpr時,傳回NULL
str like 模式 如果符合 true,則str傳回pattern。 也可以用作 like(str, pattern [, escapeChar])
不是 expr 邏輯非(前置運算子)。 也可以用作 not(expr)
expr1 或 expr2 如果trueexpr1中至少有一個是expr2,則傳回true
str regexp regexp 如果符合正規表示式true,則str傳回regexp
regexp_like(str, regexp) 如果符合正規表示式true,則str傳回regexp
str rlike 正則表達式 如果符合正規表示式true,則str傳回regexp

轉換函式

使用下列函式將值轉換成指定的類型:

功能 Description
expr :: 類型 將值 expr 轉換成目標資料類型 type
bigint(expr) 將值 expr 轉換成 BIGINT
boolean(expr) 將值 expr 轉換成 BOOLEAN
cast(expr AS 類型) 將值 expr 轉換成目標資料類型 type
日期(expr) 將值 expr 轉換成 DATE
十進制(expr [, p [, s]]) 將值 exprDECIMAL 的精度和p 的比例轉換到 s
double(expr) 將值 expr 轉換成 DOUBLE
float(expr) 將值 expr 轉換成 FLOAT
整數(expr) 將值 expr 轉換成 INT
字串(expr) 將值 expr 轉換成 STRING
時間戳記(expr) 將值 expr 轉換成 TIMESTAMP
to_date(expr [, fmt]) exprfmt 轉換為日期。
to_timestamp(expr [, fmt]) 使用exprfmt轉換為時間戳記。
try_cast(expr AS 類型) 安全地將值 expr轉換成目標資料類型。type
try_to_timestamp(expr [, fmt]) 安全地將 exprfmt 解析為時間戳記。

日期、時間戳記和間隔函數

使用下列函式來處理日期、時間戳和間隔:

功能 Description
add_months(start_date、num_months) 傳回 之後的num_monthsstart_date日期。
curdate() 傳回目前日期。
current_date() 傳回目前日期。
current_timestamp() 傳回目前的時間戳記。
current_timezone() 傳回當前會話的本地時區。
date_add(start_date, num_days) 傳回 之後的num_daysstart_date日期。
date_diff(endDate、startDate) 傳回從 startDateendDate 的天數。
date_format(expr, fmt) 以 格式 fmt將時間戳記轉換為字串。
date_part(欄位、來源) 從日期或時間戳擷取特定部分,例如年、月或日。
date_sub(start_date、num_days) 傳回 之前的num_daysstart_date日期。
date_trunc(FMT,來源) 將日期或時間戳截斷至指定單位,例如年份或月份。
dateadd(單位,值,expr) 將指定的時間間隔新增至日期或時間戳記。
datediff(結束日期,開始日期) 傳回從 startDateendDate 的天數。
day(expr) 傳回日期或時間戳記中的月份日期。
日期名稱(expr) 從日期或時間戳記傳回星期幾的名稱。
dayofmonth(expr) 傳回日期或時間戳記中的月份日期。
星期幾(expr) 從日期或時間戳記傳回星期幾 (1 = 星期日,7 = 星期六)。
年日(expr) 傳回日期或時間戳記中的一年中的天數。
extract(欄位 自 source) 擷取日期或時間戳記的一部分。
from_unixtime(unix_time [, fmt]) 將 Unix 紀元的秒數轉換為時間戳記。
from_utc_timestamp(時間戳記、時區) 將指定的時間戳記解譯為 UTC,並轉換為指定的時區。
getdate() 傳回目前的時間戳記。
小時(expr) 返回時間戳記的時段元件。
last_day(expr) 傳回日期或時間戳記所屬月份的最後一天。
make_date(年、月、日) 從年、月和日欄位建立日期。
make_timestamp(年、月、日、小時、分鐘、秒 [, 時區]) 從年、月、日、小時、分鐘、秒和選擇性的時區欄位建立時間戳記。
分鐘(expr) 傳回時間戳記的分鐘元件。
月份(expr) 返回日期或時間戳記的月份分量。
months_between(時間戳記1,時間戳記2 [,四捨五入]) 傳回 和 之間的timestamp1timestamp2月數。
next_day(start_date、day_of_week) 傳回第一個日期,該日期晚於 start_date 並命名為 day_of_week
現在() 傳回目前的時間戳記。
季度(expr) 返回日期或時間戳記(1 到 4)的年份季度。
秒數(expr) 傳回時間戳記的第二個元件。
timediff(結束日期,開始日期) 傳回以單位測量的兩個時間戳之間的差異。
timestamp_micros(微秒) 根據自 Unix 紀元以來的微秒數建立時間戳記。
timestamp_millis(以毫秒為單位的時間戳) 根據自 Unix 紀元以來的毫秒數建立時間戳記。
timestamp_seconds(秒) 根據自 Unix 紀元以來的秒數建立時間戳記。
timestampadd(單位、值、時間戳) 將指定的時間間隔新增至時間戳記。
timestampdiff(單位、開始、結束) 傳回以單位測量的兩個時間戳之間的差異。
to_date(expr [, fmt]) exprfmt 轉換為日期。
to_timestamp(expr [, fmt]) 使用exprfmt轉換為時間戳記。
to_unix_timestamp(expr [,fmt]) 傳回指定時間的 Unix 時間戳記。
to_utc_timestamp(時間戳記、時區) 解譯指定時區中的指定時間戳記,並轉換為 UTC。
截斷(expr, fmt) 傳回 expr ,並將一天的時間部分截斷為格式模型 fmt所指定的單位。
unix_micros(時間戳記) 傳回自 Unix 紀元以來的微秒數。
unix_millis(時間戳記) 傳回自 Unix 紀元以來的毫秒數。
unix_seconds(時間戳記) 傳回自 Unix 紀元以來的秒數。
unix_timestamp([expr [, fmt]]) 傳回指定時間的 Unix 時間戳記。
平日(expr) 從日期或時間戳記傳回星期幾 (0 = 星期一,6 = 星期日)。
年週數(expr) 傳回日期或時間戳記中的一年中的一週。
年份(expr) 傳回日期或時間戳記的年份元件。

字串函數

使用下列函式來轉換字串。 若要轉換日期時間字串,請參閱 轉換函數

功能 Description
基數 64(expr) 將引數轉換為 base64 字串。
char(expr) 傳回所提供 UTF-16 碼位的字元。
charindex(substr, str [, pos]) 傳回substrstrpos之後第一次出現的位置。
concat(expr1, expr2 [, ...]) 傳回參數的串接結果。
concat_ws(sep [, expr1 [, ...]]) 傳回值為以 sep分隔之字串的串連。
包含(左、右) 如果在 true 中找到right,則傳回 left
convert_timezone(sourceTz、targetTz、sourceTs) 將時間戳記sourceTs從時區sourceTz轉換為targetTz時區。
解碼(expr, charSet) 使用字元集編碼expr將二進位檔charSet轉換為字串。
endswith(左、右) 如果trueleft結尾,則傳回right
find_in_set(str, str_array) 傳回逗號分隔清單中指定字串的索引 (從 1 開始)。
format_number(expr,刻度) expr 格式化為如 #,###,###.## 的格式,並四捨五入到 scale 個小數位。
format_string(格式,expr [, ...]) 從 printf 樣式格式字串傳回格式化字串。
十六進制(expr) expr 轉換為十六進位。
初始上限(str) 以大寫形式傳回 str 每個單字的第一個字母。
instr(str, substr) 傳回 substr 中第一次出現str的位置。
lcase(str) str 的所有字元轉換為小寫後傳回。
left(字串, 長度) 傳回字串len中最str左邊的字元。
len(expr) 傳回字串或二進位運算式的長度。
長度(expr) 傳回字串或二進位運算式的長度。
列文施泰因(str1, str2 [, 閾值]) 傳回兩個給定字串之間的 Levenshtein 距離。
locate(substr, str [, pos]) 傳回substrstrpos之後第一次出現的位置。
轉小寫(str) str 的所有字元轉換為小寫後傳回。
lpad(str, len [, pad]) 傳回strpad左填補至長度len
ltrim(str [, trimStr]) str中移除主要角色。
md5(expr) 傳回 MD5 128 位元總和檢查碼作為十六進位字串。
parse_url(URL, partToExtract [, key]) url擷取部分。
位置(substr, str [, pos]) 傳回substrstrpos之後第一次出現的位置。
printf(格式, expr [, ...]) 從 printf 樣式格式字串傳回格式化字串。
regexp_count(str, regexp) 傳回正規表示式 regexpstr 中的匹配次數。
regexp_extract(str, regexp [, idx]) 擷取符合 regexp的群組。
regexp_instr(str, regexp) 傳回regexpstr的第一個相符項目的位置。
regexp_replace(str、regexp、rep[、position]) 將該相符項str的所有regexp子字串取代為 rep
regexp_substr(str, regexp) 傳回符合 內regexp規則運算式str的子字串。
重複(STR,N) 傳回重複 strn 次數的字串。
replace(str, search [, replace]) search 中的所有 replace 替換為 str
反向(str) 以反轉字元的順序傳回 str
右(str, len) 傳回字串len中最str右邊的字元。
rtrim([trimStr,] str) 傳回 str 並移除尾端字元。
sha2(expr, 位長) 傳回 SHA-2 系列雜湊函式。
split_part(str, delimiter, partNum) 分割 str 並以 delimiter 為分隔符,傳回所需的部分。
startswith(左、右) 如果trueleft開頭,則傳回right
substr(str, pos [, len]) 傳回 以長度str開始的poslen子字串。
子字串(str, pos [, len]) 傳回 以長度str開始的poslen子字串。
substring_index(str, delim, count) 傳回count出現delim次之前的子字串。
to_char(expr [, fmt]) 轉換為 expr 字串。
to_number(expr [,fmt]) 將字串 expr 轉換為數字。
翻譯(輸入、來源、目標) 透過將 中的input字元替換為 中的from對應字元來翻譯to
修剪(str [, trimStr]) str中移除前導字元和尾端字元。
ucase(str) 傳回 str 所有字元變更為大寫。
上層(str) 傳回 str 所有字元變更為大寫。
url_encode(str) str 編碼以用於 URL 查詢參數。

其他功能

支援下列功能:

功能 Description
聚合超過 計算時間範圍或其他量值的有序集的值。
CASE 表達式 { WHEN OPT1 則 RES1 } [...] [否則 def] END 如果前 resN 個都等於 optN,則傳回 expr;如果都不符合,則傳回 def
CASE { 當 cond1 然後 res1 } [...] [ELSE 否則] END resN評估為 true,則傳回condN;若找不到,則傳回def
coalesce(expr1,expr2[,...]) 傳回第一個非 Null 引數。
decode(expr, search, result [, search, result]...[,預設]) expr比較每個搜尋值並傳回對應的結果。
get_json_object(json_txt,路徑) json_txt 指定的 path中擷取 JSON 物件。
greatest(expr [, ...]) 傳回所有參數的最大值。
哈希(expr1 [,expr2...]) 傳回引數的雜湊值。
if(條件,true_value,false_value) 如果true_valuecondition,則傳回true,否則傳回false_value
iff(condition, true_value, false_value) 如果true_valuecondition,則傳回true,否則傳回false_value
ifnull(expr1、expr2) 如果 expr2expr1,則傳回 null,否則傳回 expr1
json_array_length(jsonArray) 傳回最外層 JSON 陣列中的元素數目。
最少(expr [, ...]) 傳回所有參數的最小值。
monotonically_increasing_id() 傳回單調遞增的 64 位元整數。
nullif(expr1,expr2) NULLexpr1等於expr2,則返回expr1,否則返回expr1
nvl(expr1、expr2) 如果 expr2expr1,則傳回 NULL,否則傳回 expr1
NVL2(expr1、expr2、expr3) 如果expr2不是expr1,則傳回NULL,否則傳回expr3
schema_of_json(json [, 選項]) 以 JSON 字串的 DDL 格式傳回結構描述。