分析函數可讓您使用模型 (例如 forecast、trendline 和 cluster) 來瀏覽資料。或者,您也可以將分析函數拖放至工作簿編輯器。
或者,您也可以在工作簿編輯器「資料面板」的「分析」頁籤中選取預測、趨勢線和叢集,將這些項目新增至工作簿。請參閱新增視覺化統計分析函數。
函數 | 範例 | 描述 | 語法 |
---|---|---|---|
CLUSTER |
|
使用 K-Means 或階層式分群法根據一或多個輸入表示式,將收集的記錄組分成多組。 |
|
FORECAST |
每日收益預測範例 此範例會選取每日的收益預測。 FORECAST("A - Sample Sales"."Base Facts"."1- Revenue" Target, ("A - Sample Sales"."Time"."T00 Calendar Date"),'forecast', 'numPeriods=30;predictionInterval=70;') ForecastedRevenue 每年與每季收益預測範例 此範例會選取每年和每季的收益預測。 FORECAST("A - Sample Sales"."Base Facts"."1- Revenue", ("A - Sample Sales"."Time"."T01 Year" timeYear, "A - Sample Sales"."Time"."T02 Quarter" TimeQuarter),'forecast', 'numPeriods=30;predictionInterval=70;') ForecastedRevenue |
使用指數平滑法 (ETS)、季節性 ARIMA、ARIMA 或 Prophet,針對指定的序列計量建立時間序列模型。此函數會輸出 numPeriods 引數所指定一組期間的預測。 另請參閱下方的其他 FORECAST 函數選項。 |
FORECAST(measure, ([series]), output_column_name, options,[runtime_binded_options])])
其中:
另請參閱下方的其他 FORECAST 函數選項。 |
OUTLIER |
|
使用 K-Means、「階層式分群法」或「多變量極端值」偵測演算法,依據一或多個輸入表示式將記錄歸類為極端值。 |
|
REGR |
|
適用於線性模型,會傳回適合的值或模型。此函數可用來適配兩個計量上的線性曲線。 |
|
TRENDLINE |
|
Oracle 建議您在檢視視覺化時使用新增統計資料特性來套用趨勢線。請參閱調整視覺化特性。 適用於線性、多項式或指數模型,會傳回適合的值或模型。numeric_expr 代表趨勢的 Y 值,而 series (時間資料欄) 代表 X 值。 |
|
FORECAST 函數選項 - 下表列出可搭配 FORECAST
函數使用的選項。
選項名稱 | 值 | 描述 |
---|---|---|
numPeriods | 整數 | 要預測的期間數目。 |
predictionInterval | 0 到 100;可信度越高,值就越高。 | 預測的可信度層級。 |
modelType |
ETS (指數平滑法) SeasonalArima ARIMA Prophet |
用於預測的模型。 |
useBoxCox |
TRUE FALSE |
若為 TRUE,則使用 Box-Cox 轉換。 |
lambdaValue | 不適用 |
Box-Cox 轉換參數。 若為 NULL 或當 否則,系統會在預估模型前轉換資料。 |
trendDamp |
TRUE FALSE |
這是「指數平滑法」模型所特有。 若為 TRUE,則使用衰減趨勢。若為 FALSE 或 NULL,則使用非衰減趨勢。 |
errorType |
不適用 |
這是「指數平滑法」模型所特有。 |
trendType |
N (無) A (相加) M (相乘) Z (自動選取) |
這是「指數平滑法」模型所特有 |
seasonType |
N (無) A (相加) M (相乘) Z (自動選取) |
這是「指數平滑法」模型所特有 |
modelParamIC |
ic_auto ic_aicc ic_bic ic_auto (此為預設值) |
在模型選擇中使用的資訊條件 (IC)。 |
轉換函數可以將某個值轉換為另一個值。
函數 | 範例 | 描述 | 語法 |
---|---|---|---|
CAST |
|
將表示式或空常值的資料類型變更為另一種資料類型。例如,您可以將 customer_name ( 請使用 請勿使用 |
|
IFNULL |
|
測試表示式是否評估為空值,如果是,則將指定值指定給表示式。 |
|
INDEXCOL |
|
使用外部資訊可傳回適當的資料欄供已登入的使用者查看。 |
|
NULLIF |
|
比較兩個表示式。若二者相等,此函數會傳回 NULL。若二者不相等,此函數會傳回第一個表示式。您不能為第一個表示式指定文字 NULL。 |
|
To_DateTime |
|
將 DateTime 格式的字串文字轉換為 DateTime 資料類型。 |
|
VALUEOF |
|
在篩選中參照某個語意模型變數值。 使用 expr 變數作為 |
|
這些函數可計算時間戳記值,或將其無條件捨去至最接近的指定期間,例如小時、日、週、月和季。
您可以使用計算的時間戳記聚總使用不同精細度的資料。例如,您可以將 EXTRACTDAY()
函數套用至銷售訂單日期,以計算訂單發生當日午夜的時間戳記,以便依日聚總資料。
函數 | 範例 | 描述 | 語法 |
---|---|---|---|
擷取日 |
EXTRACTDAY("Order Date")
|
傳回發生輸入值當日午夜 (12 AM) 的時間戳記。例如,如果輸入時間戳記為 2 月 22 日上午 3:02:01,則此函數會傳回 2 月 22 日上午 12:00:00 的時間戳記。 |
|
擷取小時 |
EXTRACTHOUR("Order Date")
|
傳回輸入值的開始小時時間戳記。例如,如果輸入時間戳記為下午 11:18:30,則此函數會傳回下午 11:00:00 的時間戳記。 |
|
擷取整點時間 |
EXTRACTHOUROFDAY("Order Date")
|
傳回輸入值的小時時間戳記,年、月、日、分和秒則使用預設值。 |
|
擷取毫秒 |
EXTRACTMILLISECOND("Order Date")
|
傳回包含輸入值的毫秒值的時間戳記。例如,如果輸入時間戳記為 15:32:02.150,則此函數會傳回 15:32:02.150 的時間戳記。 |
|
擷取分鐘 |
EXTRACTMINUTE("Order Date")
|
傳回發生輸入值的該分鐘開始的時間戳記。例如,如果輸入時間戳記為上午 11:38:21,則此函數會傳回上午 11:38:00 的時間戳記。 |
|
擷取月 |
EXTRACTMONTH("Order Date")
|
傳回發生輸入值的當月第一天的時間戳記。例如,如果輸入時間戳記為 2 月 22 日,則此函數會傳回 2 月 1 日的時間戳記。 |
|
擷取季 |
EXTRACTQUARTER("Order Date")
|
傳回發生輸入值的當季第一天的時間戳記。例如,如果輸入時間戳記發生在第三個會計季度,則此函數會傳回 7 月 1 日的時間戳記。 |
|
擷取秒 |
EXTRACTSECOND("Order Date")
|
傳回輸入值的時間戳記。例如,如果輸入時間戳記為 15:32:02.150,則此函數會傳回 15:32:02 的時間戳記。 |
|
擷取週 |
EXTRACTWEEK("Order Date")
|
傳回發生輸入值的當週第一天 (星期日) 的日期。例如,如果輸入時間戳記為 9 月 24 日星期三,則此函數會傳回 9 月 21 日星期日的時間戳記。 注意:如果一週的第一天 (即星期日) 落在去年,因此會對聚總造成不利的影響,則該函數會傳回本年度一週的第七天 (即星期六),而不是去年一週的第一天。例如,1/1/24、1/2/24 及 1/3/24 都會聚總至 1/6/24 星期六,而不是 12/29/23 星期日。 |
|
擷取年 |
EXTRACTYEAR("Order Date")
|
傳回發生輸入值的當年 1 月 1 日的時間戳記。例如,如果輸入時間戳記發生在 1967 年,則此函數會傳回 1967 年 1 月 1 日的時間戳記。 |
|
以下是在計算式中使用主題區域日期時獲得最佳結果的一些秘訣。
新增主題區域日期至計算式
如果您將日期從主題區域直接拖曳至計算式中,並將其作為字串或整數進行處理,便會出現錯誤。這是因為基礎日期值是時間戳記。
因此,改用其中一個日期擷取函數即可解譯該日期。
例如,您可能有這些主題區域日期。
.png
若要從這些主題區域日期擷取月,請使用 ExtractMonthOfYear 函數:
case when monthname(ExtractMonthOfYear("Date")) in ('Jan' ,'Feb', 'Mar') THEN 'Q1' ELSE 'Rest of the year' END
顯示函數作用於查詢的結果集。
函數 | 範例 | 描述 | 語法 |
---|---|---|---|
BottomN |
|
傳回表示式之 n 個最低的值 (從最低到最高)。 |
|
FILTER |
|
使用指定的預先聚總篩選運算表示式。 |
|
MAVG |
|
計算結果集中最後 n 列資料 (含目前資料列) 的移動平均值 (平均數)。 |
|
MSUM |
|
計算最後 n 列資料 (含目前資料列) 的移動總和。 第一個資料列的總和等於第一個資料列的數值表示式。第二個資料列的總和為前兩列資料的總和,依此類推。當計算到第 n 個資料列時,即為根據前 n 個資料列的資料來計算總和。 |
|
NTILE |
|
根據使用者指定的範圍決定值的排名。它會傳回多個整數以表示排列的範圍。此範例顯示的範圍為 1 到 100,最低的銷售 = 1,最高的銷售 = 100。 |
|
PERCENTILE |
|
計算符合數值表示式引數之每個值的百分比等級。百分等級範圍是從 0 (第 1 個百分位數) 到 1 (第 100 個百分位數),並包含這兩者。 |
|
RANK |
|
計算符合數值表示式引數之每個值的等級。最大的數字會被指定為 1,而後續的每個數字會被指定下一個連續整數 (2、3、4、...)。如果某些值相等,它們就會被指定為相同等級 (例如,1、1、1、4、5、5、7...)。 |
|
RCOUNT |
|
接受一組記錄作為輸入,然後計算截至目前所產生的記錄筆數。 |
|
RMAX |
|
接受一組記錄作為輸入,然後根據截至目前所產生的記錄顯示最大值。指定的資料類型必須是可以排列的類型。 |
|
RMIN |
|
接受一組記錄作為輸入,然後根據截至目前所產生的記錄顯示最小值。指定的資料類型必須是可以排列的類型。 |
|
RSUM |
|
根據截至目前為止所產生的記錄計算累積總和。 第一個資料列的總和等於第一個資料列的數值表示式。第二個資料列的總和為前兩列資料的總和,依此類推。 |
|
TOPN |
|
傳回表示式之 n 個最高的值 (從最高到最低)。 |
|
使用顯示函數的秘訣
filter (<measure> using fiscal_quarter = 'Q4')
filter (<measure> using fiscal_quarter = 'Q3')
filter (<measure> using fiscal_year = 'FY24')
評估函數為資料庫函數,可用來傳送表示式以取得進階運算。
內嵌的資料庫函數可能需要一或多個資料欄。函數中的 %1 ... %N 會參照這些資料欄。實際的資料欄必須列於函數之後。
函數 | 範例 | 描述 | 語法 |
---|---|---|---|
EVALUATE |
|
以選擇性參照資料欄為參數,將指定的資料庫函數傳送至資料庫以進行評估。 |
|
EVALUATE_AGGR |
|
以選擇性參照資料欄為參數,將指定的資料庫函數傳送至資料庫以進行評估。此函數是用於含 |
|
本小節中描述的算術函數可執行算術運算。
函數 | 範例 | 描述 | 語法 |
---|---|---|---|
ABS |
|
可計算數值表示式的絕對值。 expr 是任何評估為數值的表示式。 |
|
ACOS |
|
可計算數值表示式的反餘弦。 expr 是任何評估為數值的表示式。 |
|
ASIN |
|
可計算數值表示式的反正弦。 expr 是任何評估為數值的表示式。 |
|
ATAN |
|
可計算數值表示式的反正切。 expr 是任何評估為數值的表示式。 |
|
ATAN2 |
|
可計算 y /x 的反正切,其中 y 是第一個數值表示式,而 x 是第二個數值表示式。 |
|
CEILING |
|
可將非整數數值表示式進位至次高整數。如果數值表示式評估為一個整數, |
|
COS |
|
可計算數值表示式的餘弦。 expr 是任何評估為數值的表示式。 |
|
COT |
|
可計算數值表示式的餘切。 expr 是任何評估為數值的表示式。 |
|
DEGREES |
|
可將表示式從弧度 (radian) 轉換為度 (degree)。 expr 是任何評估為數值的表示式。 |
|
EXP |
|
可將值傳送至指定的次方。可計算 e 的 n 次方,其中 e 是自然對數的底數。 |
|
ExtractBit |
|
可擷取整數中特定位置的一個位元。它會傳回對應該位元位置的整數 0 或 1。 |
|
FLOOR |
|
可將非整數數值表示式捨去至次低整數。如果數值表示式評估為一個整數, |
FLOOR(expr) |
LOG |
|
可計算表示式的自然對數 (Natural Logarithm)。 expr 是任何評估為數值的表示式。 |
|
LOG10 |
|
可計算表示式以 10 為基底的對數。 expr 是任何評估為數值的表示式。 |
|
MOD |
|
可將第一個數值表示式除以第二個數值表示式,並傳回商數 (quotient) 的餘數部分。 |
|
PI |
|
可傳回 pi 的常數值。 |
|
POWER |
|
接受第一個數值表示式,並提升至第二個數值表示式中所指定的次方。 |
|
RADIANS |
|
可將表示式從度 (degree) 轉換為弧度 (radian)。 expr 是任何評估為數值的表示式。 |
|
RAND |
|
可傳回 0 到 1 之間的虛擬亂數。 |
|
RANDFromSeed |
|
可傳回以原始內建值為基礎的虛擬亂數。針對指定的原始內建值會產生同一組亂數。 |
|
ROUND |
|
可將數值表示式四捨五入至 n 個數字位數。 expr 是任何評估為數值的表示式。 integer 是任一正整數,代表數字的位數。 |
|
SIGN |
|
傳回下列數值:
|
|
SIN |
|
可計算數值表示式的正弦。 |
|
SQRT |
|
可計算數值表示式引數的平方根。此數值表示式必須評估為非負數。 |
|
TAN |
|
可計算數值表示式的正切。 expr 是任何評估為數值的表示式。 |
|
TRUNCATE |
|
依指定的小數點位數傳回數值。 expr 是任何評估為數值的表示式。 integer 是任一正整數,代表小數點右邊要傳回的字元數。 |
|
執行聚總函數會對多個值執行運算,以建立摘要結果。
函數 | 範例 | 描述 | 語法 |
---|---|---|---|
MAVG |
計算結果集中最後 n 列資料 (含目前資料列) 的移動平均值 (平均數)。 expr 是任何評估為數值的表示式。integer 是任何正整數。代表前 n 個資料列的資料平均值。 |
|
|
MSUM |
|
計算最後 n 列資料 (含目前資料列) 的移動總和。 expr 是任何評估為數值的表示式。integer 是任何正整數。代表最後 n 列資料的總和。 |
|
RSUM |
|
根據截至目前為止所產生的記錄計算累積總和。 expr 是任何評估為數值的表示式。 |
|
RCOUNT |
|
接受一組記錄作為輸入,然後計算截至目前所產生的記錄筆數。 expr 是任何資料類型的表示式。 |
|
RMAX |
|
接受一組記錄作為輸入,然後根據截至目前所產生的記錄顯示最大值。 expr 是任何資料類型的表示式。 |
|
RMIN |
|
接受一組記錄作為輸入,然後根據截至目前所產生的記錄顯示最小值。 expr 是任何資料類型的表示式。 |
|
建立資料模型時可以利用空間函數執行地理分析。例如,您可以計算兩個地理區域 (稱為形狀或多邊形) 之間的距離。
註:
您無法在視覺化工作簿的自訂計算式中使用這些空間函數。函數 | 範例 | 描述 | 語法 |
---|---|---|---|
GeometryArea |
|
計算形狀佔用的區域。 |
|
GeometryDistance |
|
計算兩個形狀之間的距離。 |
|
GeometryLength |
|
計算形狀的周長。 |
|
GeometryRelate |
|
判斷一個形狀是否位於另一個形狀中。以字串形式 (Varchar) 傳回 TRUE 或 FALSE。 |
|
GeometryWithinDistance |
|
判斷兩個形狀是否位於彼此的指定距離中。以字串形式 (Varchar) 傳回 TRUE 或 FALSE。 |
|
字串函數可執行各種不同的字元操控。它們對字元字串有作用。
函數 | 範例 | 描述 | 語法 |
---|---|---|---|
ASCII |
|
可將單一字元字串轉換為相對應的 ASCII 碼 (0 到 255)。如果字元表示式評估為多個字元,將會傳回對應表示式中第一個字元的 ASCII 碼。 expr 是任何評估為字元字串的表示式。 |
|
BIT_LENGTH |
|
可傳回指定字串的長度 (位元)。每個 Unicode 字元的長度均為 2 個位元組 (等於 16 個位元)。 expr 是任何評估為字元字串的表示式。 |
|
CHAR |
|
可將 0 到 255 之間的數值轉換為相對應於 ASCII 碼的字元值。 expr 是任何評估為 0 到 255 間之數值的表示式。 |
|
CHAR_LENGTH |
|
可傳回指定字串的長度 (字元數)。字串的長度不包括前置空格和尾端空格。 expr 是任何評估為字元字串的表示式。 |
|
CONCAT |
|
可串連兩個字元字串。 exprs 是評估為字元字串 (使用逗號區隔) 的表示式。 您必須將原始資料 (未格式化的資料) 與 |
|
INSERT |
|
將指定的字元字串插入另一個字元字串中的指定位置。 expr1 是任何評估為字元字串的表示式。主要識別目標字元字串。 integer1 是代表從目標字串開頭算起之字元數的任何正整數,系統將在此字元數後插入第二個字串。 integer2 是代表目標字串中將取代為第二個字串之字元數的任何正整數。 expr2 是任何評估為字元字串的表示式。主要識別要插入目標字串中的字元字串。 |
|
LEFT |
|
可傳回字串左邊算起的指定數目字元。 expr 是任何評估為字元字串的表示式 integer 是代表要傳回之字串左邊算起字元數的任何正整數。 |
|
LENGTH |
|
可傳回指定字串的長度 (字元數)。傳回的長度不包括任何尾端空格字元。 expr 是任何評估為字元字串的表示式。 |
|
LOCATE |
|
可傳回字元字串在另一個字元字串中的數值位置。如果在搜尋的字串中找不到該字元字串,此函數會傳回 0 值。 expr1 是任何評估為字元字串的表示式。主要識別要搜尋的字串。 expr2 是任何評估為字元字串的表示式。 主要識別要搜尋的字串。 |
|
LOCATEN |
|
就像 LOCATE,可傳回字元字串在另一個字元字串中的數值位置。LOCATEN 包含一個整數引數,可供指定開始搜尋的起始位置。 expr1 是任何評估為字元字串的表示式。主要識別要搜尋的字串。 expr2 是任何評估為字元字串的表示式。主要識別要搜尋的字串。 integer 是代表開始尋找字元字串之起始位置的任何正整數 (非零值)。 |
|
LOWER |
|
將字元字串轉換為小寫。 expr 是任何評估為字元字串的表示式。 |
|
OCTET_LENGTH |
|
可傳回指定字串的位元組數。 expr 是任何評估為字元字串的表示式。 |
|
POSITION |
|
可傳回 strExpr1 在字元表示式中的數值位置。如果找不到 strExpr1,函數會傳回 0。 expr1 是任何評估為字元字串的表示式。主要識別要於目標字串中搜尋的字串。例如 "d"。 expr2 是任何評估為字元字串的表示式。主要識別要搜尋的目標字串。例如 "abcdef"。 |
|
REPEAT |
|
可重複指定的表示式 n 次。 expr 是任何評估為字元字串的表示式 integer 是代表重複字元字串次數的任何正整數。 |
|
REPLACE |
|
可將指定字元表示式中的一或多個字元取代為一或多個其他字元。 expr1 是任何評估為字元字串的表示式。這是其中字元將被取代的字串。 expr2 是任何評估為字元字串的表示式。此第二個字串識別第一個字串中將被取代的字元。 expr3 是任何評估為字元字串的表示式。此第三個字串指定要替代第一個字串的字元。 |
|
RIGHT |
|
可傳回從字串右邊算起的指定字元數。 expr 是任何評估為字元字串的表示式。 integer 是代表要傳回之字串右邊算起字元數的任何正整數。 |
|
SPACE |
|
可插入空格。 integer 是指示要插入之空格數的任何正整數。 |
|
SUBSTRING |
|
可從原始字串的固定字元數位置開始建立新字串。 expr 是任何評估為字元字串的表示式。 startPos 是代表從字串左邊開始算起之字元數 (結果開始處) 的任何正整數。 |
|
SUBSTRINGN |
|
就像 SUBSTRING,可從原始字串的固定字元數位置開始建立新字串。 SUBSTRINGN 包括一個整數引數,可供指定新字串的長度 (字元數)。 expr 是任何評估為字元字串的表示式。 startPos 是代表從字串左邊開始算起之字元數 (結果開始處) 的任何正整數。 |
|
TrimBoth |
|
可去除字元字串中之指定的前置和尾端字元。 char 是任何單一字元。如果省略此設定 (與必要的單引號),會使用空白字元作為預設值。 expr 是任何評估為字元字串的表示式。 |
|
TRIMLEADING |
|
可去除字元字串中之指定的前置字元。 char 是任何單一字元。如果省略此設定 (與必要的單引號),會使用空白字元作為預設值。 expr 是任何評估為字元字串的表示式。 |
|
TRIMTRAILING |
|
可去除字元字串中之指定的尾端字元。 char 是任何單一字元。如果省略此設定 (與必要的單引號),會使用空白字元作為預設值。 expr 是任何評估為字元字串的表示式。 |
|
UPPER |
|
可將字元字串轉換為大寫。 expr 是任何評估為字元字串的表示式。 |
|
以下是使用 LISTAGG 函數的一些秘訣,可在處理工作簿字串時獲得最佳的結果。例如,您可以在資料欄中建立包含所有城市的字串。
串連多個值:
使用 LISTAGG 將多個字串值串連成一個儲存格和一個資料列。
LISTAGG([DISTINCT] <column to concatenate> BY <grouping column>) ON OVERFLOW TRUNCATE
DISTINCT
- 如果值不是唯一的,請使用此引數移除重複的值。ON OVERFLOW TRUNCATE
- 如果結果超過允許的長度上限,請使用此引數來截斷傳回的字串。Number City State 12 New York New York 14 New York New York 30 Boston Massachusetts 18 Salem Massachusetts 12 Buffalo New York 10 Buffalo New York 20 Albany New York
命令與輸出範例
LISTAGG(City, ', ')
輸出 "New York, New York, Boston, Salem, Buffalo, Buffalo, Albany"
LISTAGG(DISTINCT City, ', ')
輸出 "New York, Boston, Salem, Buffalo Albany"
LISTAGG(City, ', ' ON OVERFLOW TRUNCATE '...')
輸出 "New York, New York, Boston, Salem, Buffalo, ..."
USER
系統函數會傳回與階段作業有關的值。例如,您登入時所使用的使用者名稱。
函數 | 範例 | 描述 | 語法 |
---|---|---|---|
DATABASE |
傳回您登入的主題區域名稱。 |
|
|
USER |
傳回您所登入的語意模型的使用者名稱。 |
|
時間序列函數可讓您根據時間維度聚總和預測資料。例如,您可以使用 AGO 函數來計算一年前至今的收益。
時間維度成員所在的層級必須與函數的層級相同或更低。因此,在查詢中必須有一或多個資料欄能夠唯一識別位於或低於指定層級的成員。
函數 | 範例 | 描述 | 語法 |
---|---|---|---|
AGO |
|
計算過去一段指定期間內某個計量的聚總值。例如,若要計算一年前的每月收益,請使用 |
其中:
|
PERIODROLLING |
|
可計算從 x 個時間單位開始,到 y 個時間單位結束,這一段期間的計量聚總。例如, |
其中:
|
TODATE |
|
計算某個計量從期間開始到最新期間的聚總值,例如年累計至今計算式。 例如,若要計算年累計至今銷售額,請使用 |
其中:
|