機械翻訳について

関数

式で使用できる関数には様々なタイプがあります。

トピック:

集計関数

集計関数は、複数の値に対して演算を実行し、サマリー結果を作成します。

次のリストに、列およびメジャー列で使用できる集計ルールを示します。 リストには、分析の計算項目の作成時に使用できる関数も含まれています。

  • デフォルト - セマンティック・モデルと同様に、もしくは分析の最初の作成者によって、デフォルトの集計ルールが適用されます。 分析の計算項目には使用できません。

  • サーバーの設定を適用 - Oracle Analyticsによって決定された集計ルール(セマンティック・モデルで定義されたルールなど)が適用されます。 集計は、合計、最小および最大などの単純なルールの場合は、Oracle Analytics内で実行されます。「レイアウト」ペイン内のメジャー列、または分析での計算項目には使用できません。

  • SUM - 結果セットに含まれるすべての値を加算して取得した合計が計算されます。 数値を含む項目に使用します。

  • MIN - 結果セットに含まれる行の最小値(最も低い数値)が計算されます。 数値を含む項目に使用します。

  • MAX - 結果セットに含まれる行の最大値(最も高い数値)が計算されます。 数値を含む項目に使用します。

  • AVG - 結果セットに含まれる項目の平均値が計算されます。 数値を含む項目に使用します。 表およびピボット表の平均が、近似の整数値に丸められます。

  • FIRST - メジャーに関して、結果セットに含まれるその項目のうち、最初に出現するものが選択されます。 計算項目の場合は、「選択済」リストの表示に準じて最初のメンバーが選択されます。 「列式の編集」ダイアログ・ボックスでは使用できません。

  • LAST - 結果セットに含まれるその項目のうち、最後に出現するものが選択されます。 計算項目の場合は、「選択済」リストの表示に準じて最後のメンバーが選択されます。 「列式の編集」ダイアログ・ボックスでは使用できません。

  • COUNT - その項目に関して、結果セット内の、nullでない値を含む行の数が計算されます。 その項目は通常は列名であり、列名である場合は、その列の、null以外の値を含む行の数が返されます。

  • COUNT DISTINCT - COUNT関数に個別処理を追加します。つまり、項目の個別の出現は、1回のみカウントされます。

  • なし - 集計は適用されません。 分析の計算項目には使用できません。

  • レポートを基準にした合計(適用可能な場合) - 選択を解除すると、メジャーにフィルタが適用される前に、結果セット全体に基づいて、Oracle Analyticsによって合計が計算されます。 「列式の編集」ダイアログ・ボックスまたは分析の計算項目には使用できません。 属性列のみに使用できます。

関数 説明 構文

AGGREGATE AT

AGGREGATE(sales AT year)

指定したデータ・モデル階層内のレベルに基づいて列を集計します。

  • measureは、メジャー列の名前です。
  • levelは、集計するレベルです。

オプションで、複数のレベルを指定できます。 1番目の引数で指定したメジャーのメジャー・レベルとして使用されているレベルを含むディメンションのレベルは指定できません。 たとえば、monthyearly_salesのメジャー・レベルとして使用される時間ディメンションのものである場合、関数をAGGREGATE(yearly_sales AT month)として記述することはできません。

AGGREGATE(measure AT level [, level1, levelN])

AGGREGATE BY AGGREGATE(sales BY month, region) 1つ以上のディメンション列に基づいてメジャーを集計します。
  • measureは、集計するメジャー列の名前です。

  • columnは、集計するディメンション列です。
複数の列に基づいてメジャーを集計できます。
AGGREGATE(measure BY column [, column1, columnN])

AVG

Avg(Sales)

数値の平均を計算します。

AVG(expr)

AVGDISTINCT

 

式のすべての値の平均(平均値)を個別に計算します。

AVG(DISTINCT expr)

BIN

BIN(revenue BY productid, year WHERE productid > 2 INTO 4 BINS RETURNING RANGE_LOW)

指定された数値式を、指定された同じ幅のバケットに分類します。 この関数は、ビン番号、またはビン間隔の2つのエンドポイントのいずれかを返すことができます。numeric_exprはビンに対するメジャーまたは数値属性です。 BY grain_expr1,…, grain_exprNは、numeric_exprが計算されるグレインを定義する式のリストです。 BYは、メジャー式には必須で、属性式の場合はオプションです。 ビンINTO number_of_bin BINSに数値が割り当てられる前に、numeric_exprに適用されるフィルタはbinの数です。BETWEEN min_value AND max_valueが、外側のbin RETURNING NUMBERの最後のポイントに使用される最小値と最大値は、戻り値がビン番号(1、2、3、4など)であることを示します。 これはデフォルトです。 RETURNING RANGE_LOWは、ビン間隔RETURNING RANGE_HIGHの下限値を示しています。この値は、ビン間隔の上限値を示しています。

BIN(numeric_expr [BY grain_expr1, ..., grain_exprN] [WHERE condition] INTO number_of_bins BINS [BETWEEN min_value AND max_value] [RETURNING {NUMBER | RANGE_LOW | RANGE_HIGH}])

BottomN

式引数の最下位のnの値を、1からn番目までランク付けします。1は、最下位の数値に対応します。

exprは、数値に評価される任意の式です。整数は任意の正の整数です。 結果セットに表示されるランキングの一番下の数を表します。1は最も低いランクです。

BottomN(expr, integer)

COUNT

COUNT(Products)

非NULL値を含むアイテムの数を特定します。

COUNT(expr)

COUNTDISTINCT

COUNT関数に個別の処理を追加します。

exprは任意の式です。

COUNT(DISTINCT expr)

COUNT*

SELECT COUNT(*) FROM Facts

行数をカウントします。

COUNT(*)

First

First(Sales)

式引数のnull以外の最初の戻り値を選択します。 First関数は、明示的に定義されたディメンションで指定される最も詳細なレベルで動作します。

First([NumericExpression)]

Last

Last(Sales)

式の最後の非NULLの戻り値を選択します。

Last([NumericExpression)]

MAVG

現在の行を含めて、結果セットのデータの最後のn行の移動平均を計算します。

exprは、数値に評価される任意の式です。整数は任意の正の整数です。 最後のn行のデータ平均を表します。

MAVG(expr, integer)

MAX

MAX(Revenue)

数値式の引数を満たす行の最大値(最も高い数値)を計算します。

MAX(expr)

MEDIAN

MEDIAN(Sales)

数値式の引数を満たす行の中央(中間)値を計算します。 偶数の行がある場合、中央値は2つの中間行の平均です。 この関数は常にdoubleを返します。

MEDIAN(expr)

MIN

MIN(Revenue)

数値式の引数を満たす行の最小値(最も低い数値)を計算します。

MIN(expr)

NTILE

ユーザーの指定範囲における値のランクを決定します。 範囲のランクを示す整数を返します。 numTiles=100のNTILEは、一般に"百分位数"と呼ばれる内容を返します(1から100までの範囲の数値で、100がソートの高い部分を表します)。

exprは、数値に評価される任意の式です。numTilesは、タイルの数を表す正のnull以外の整数です。

NTILE(expr, numTiles)

PERCENTILE

数値式引数に一致する各値の百分位数ランクを計算します。 パーセンタイル・ランクの範囲は、0 (0thパーセンタイル)から1 (100thパーセンタイル)です。

exprは、数値に評価される任意の式です。

PERCENTILE(expr)

RANK

RANK(chronological_key, null, year_key_columns)

数値式の引数を満たす各値のランクを計算します。 最も高い数値にはランク1が割り当てられ、次に続くランクには2、3、4などの連続した整数が割り当てられます。 いくつかの値が等しい場合、それらには同じランクが割り当てられます(たとえば、1、1、1、4、5、5、7...)。

exprは、数値に評価される任意の式です。

RANK(expr)

STDDEV

STDDEV(Sales) STDDEV(DISTINCT Sales)

値セットの標準偏差を返します。 戻り型は常にdoubleです。

STDDEV(expr)

STDDEV_POP

STDDEV_POP(Sales) STDDEV_POP(DISTINCT Sales)

母分散および標準偏差の計算式を使用して、値セットの標準偏差を返します。

STDDEV_POP([NumericExpression])

SUM

SUM(Revenue)

数値式の引数を満たすすべての値を加算して得られる合計を計算します。

SUM(expr)

SUMDISTINCT

数値式引数に一致するすべての値を個別に加算して得られる合計を計算します。

exprは、数値に評価される任意の式です。

SUM(DISTINCT expr)

TOPN

式引数の最上位のnの値を、1からn番目までランク付けします。1は最も高い数値に対応します。

exprは、数値に評価される任意の式です。整数は任意の正の整数です。 結果セットに表示されるランキングの上位数を表します。1は最も高いランクです。

TOPN(expr, integer)

分析関数

アナリティクス関数を使用すると、予測、トレンド線、クラスタなどのモデルを使用してデータを探索できます。 または、アナリティクス関数をワークブック・エディタにドラッグ・アンド・ドロップできます。

または、ワークブック・エディタの「データ」パネルの「アナリティクス」タブで予測、トレンド線およびクラスタを選択して、ワークブックに予測、トレンド線およびクラスタを追加できます。 「ビジュアライゼーションへの統計アナリティクス関数の追加」を参照してください。

関数 説明 構文

CLUSTER

CLUSTER((product, company), (billed_quantity, revenue), 'clusterName', 'algorithm=k-means;numClusters=%1;maxIter=%2;useRandomSeed=FALSE;enablePartitioning=TRUE', 5, 10)

K平均法または階層的クラスタリングを使用する1つ以上の入力式に基づいてレコード・セットをグループに集めます。

CLUSTER((dimension_expr1 , ... dimension_exprN), (expr1, ... exprN), output_column_name, options, [runtime_binded_options])

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)または季節性ARMIAやARIMAを使用して、seriesに対して指定されたメジャーの時系列モデルを作成します。 この関数は、numPeriods引数で指定された一連の期間の予測を出力します。

後述のFORECAST関数の追加オプションも参照してください。

FORECAST(measure, ([series]), output_column_name, options,[runtime_binded_options])])

説明:

  • measureは、収益データなど、予測するメジャーを表します。

  • seriesは、予測モデルの作成に使用される時間粒度を表します。 seriesは1つ以上の時間ディメンション列のリストです。 系列を省略すると、問合せから時間の粒度が決定されます。

  • output_column_nameは、「予測」lowhighおよびpredictionIntervalの有効な列名を表します。

  • optionsは、セミコロン(;)で区切られた名前/値のペアの文字列リストを表します。 値には、runtime_binded_optionsで指定された%1 ... %Nを含めることができます。

  • runtime_binded_optionsは、列およびオプションのカンマ区切りリストを表します。 これらの列およびオプションの値は、個別の問合せ実行時に評価および解決されます。

後述のFORECAST関数の追加オプションも参照してください。

OUTLIER

OUTLIER((product, company), (billed_quantity, revenue), 'isOutlier', 'algorithm=kmeans')

K平均法、階層的クラスタリングまたは多変量外れ値検出アリゴリズムを使用して、1つ以上の入力式に基づいてレコードを外れ値として分類します。

OUTLIER((dimension_expr1 , ... dimension_exprN), (expr1, ... exprN), output_column_name, options, [runtime_binded_options])

REGR

REGR(revenue, (discount_amount), (product_type, brand), 'fitted', '')

線形モデルに適合させて、適合した値またはモデルを返します。 この関数は、2つのメジャーに線形曲線を適合するために使用できます。

REGR(y_axis_measure_expr, (x_axis_expr), (category_expr1, ..., category_exprN), output_column_name, options, [runtime_binded_options])

TRENDLINE

TRENDLINE(revenue, (calendar_year, calendar_quarter, calendar_month) BY (product), 'LINEAR', 'VALUE')

ビジュアライゼーションを表示する際は「統計の追加」プロパティを使用してトレンド線を適用することをお薦めします。 「ビジュアライゼーション・プロパティの調整」を参照してください。

線形、多項式または指数モデルに適合させて、適合した値またはモデルを返します。 numeric_exprはトレンドのy値、series (時間列)はx値を表します。

TRENDLINE(numeric_expr, ([series]) BY ([partitionBy]), model_type, result_type)

「FORECASTファンクションのオプション」次の表に、FORECAST関数で使用できるオプションを示します。

オプション名 説明
numPeriods Integer 予測する時間間隔の数
predictionInterval 0から100。より高い値は高い信頼度を指定 予測の信頼度レベル。
modelType

ETS (指数平滑法)

SeasonalArima

ARIMA

予測に使用するモデル。
useBoxCox

TRUE

FALSE

TRUEの場合は、Box-Cox変換を使用します。
lambdaValue 該当なし

Box-Cox変換パラメータ。

NULLの場合は無視。またはuseBoxCoxFALSEの場合は無視されます。

そうしないと、モデルが推定される前にデータが変換されます。

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)。

日付と時間関数

日付と時間関数は、DATEおよびDATETIMEに基づいてデータを操作します。

関数 説明 構文

CURRENT_Date

CURRENT_DATE

現在の日付を返します。

日付は、Oracle BIが実行されているシステムによって決定されます。

CURRENT_DATE

CURRENT_TIME

CURRENT_TIME(3)

指定した精度の桁数で現在の時刻を返します。たとえば: HH:MM:SS.SSS

引数を指定しない場合、関数はデフォルトの精度を返します。

CURRENT_TIME(expr)

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP(3)

現在の日付/タイムスタンプを指定された精度の桁数で返します。

CURRENT_TIMESTAMP(expr)

DAYNAME

DAYNAME(Order_Date)

指定された日付式の曜日名を返します。

DAYNAME(expr)

DAYOFMONTH

DAYOFMONTH(Order_Date)

指定された日付式について、月の通算日に対応する数字を返します。

DAYOFMONTH(expr)

DAYOFWEEK

DAYOFWEEK(Order_Date)

指定された日付式について、曜日に対応する1から7の数字を返します。 たとえば、1は日曜日、2は月曜日に対応し、同様に続いて7は土曜日に対応します。

DAYOFWEEK(expr)

DAYOFYEAR

DAYOFYEAR(Order_Date)

指定された日付式について、年の通算日に対応する数字(1から366)を返します。

DAYOFYEAR(expr)

DAY_OF_QUARTER

DAY_OF_QUARTER(Order_Date)

指定された日付式について、四半期の通算日に対応する数字(1から92)を返します。

DAY_OF_QUARTER(expr)

HOUR

HOUR(Order_Time)

指定された時刻式について、時間に対応する数字(0から23)を返します。 たとえば、0は午前12時に対応し、23は午後11時に対応します。

HOUR(expr)

MINUTE

MINUTE(Order_Time)

指定された時刻式について、分に対応する数字(0から59)を返します。

MINUTE(expr)

MONTH

MONTH(Order_Time)

指定された日付式について、月に対応する数字(1から12)を返します。

MONTH(expr)

MONTHNAME

MONTHNAME(Order_Time)

指定された日付式の月の名前を返します。

MONTHNAME(expr)

MONTH_OF_QUARTER

MONTH_OF_QUARTER(Order_Date)

指定された日付式について、四半期の通算月に対応する数字(1から3)を返します。

MONTH_OF_QUARTER(expr)

NOW

NOW()

現在のタイムスタンプを返します。 NOW関数は、CURRENT_TIMESTAMP関数と同等です。

NOW()

QUARTER_OF_YEAR

QUARTER_OF_YEAR(Order_Date)

指定された日付式について、年の四半期に対応する数字(1から4)を返します。

QUARTER_OF_YEAR(expr)

SECOND

SECOND(Order_Time)

指定された時刻式について、秒に対応する数字(0から59)を返します。

SECOND(expr)

TIMESTAMPADD

TIMESTAMPADD(SQL_TSI_MONTH, 12,Time."Order Date")

指定された間隔の数をタイムスタンプに加算し、単一のタイムスタンプを返します。

間隔オプションは次のとおりです: SQL_TSI_SECOND, SQL_TSI_MINUTE, SQL_TSI_HOUR, SQL_TSI_DAY, SQL_TSI_WEEK, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_YEAR

TIMESTAMPADD(interval, expr, timestamp)

TIMESTAMPDIFF

TIMESTAMPDIFF(SQL_TSI_MONTH, Time."Order Date",CURRENT_DATE)

2つのタイムスタンプ間の指定された間隔の合計数を返します。

TIMESTAMPADDと同じ間隔を使用します。

TIMESTAMPDIFF(interval, expr, timestamp2)

WEEK_OF_QUARTER

WEEK_OF_QUARTER(Order_Date)

指定された日付式について、四半期の通算週に対応する数字(1から13)を返します。

WEEK_OF_QUARTER(expr)

WEEK_OF_YEAR

WEEK_OF_YEAR(Order_Date)

指定された日付式について、年の通算週に対応する数字(1から53)を返します。

WEEK_OF_YEAR(expr)

YEAR

YEAR(Order_Date)

指定された日付式の年を返します。

YEAR(expr)

日付抽出関数

これらの関数は、タイムスタンプ値の計算または切捨てを行って、最も近い指定した期間(時間、日、週、月、四半期など)にします。

計算されたタイムスタンプを使用して、異なるグレインを使用してデータを集計できます。 たとえば、EXTRACTDAY()関数を受注日に適用して、注文が発生した日の午前0時のタイムスタンプを計算すると、データを日別に集計できます。

関数 説明 構文

日を抽出

EXTRACTDAY("Order Date")
  • 2/22/1967 3:02:01 AM2/22/1967 12:00:00 AMを返します。
  • 9/2/2022 10:38:21 AM9/2/2022 12:00:00 AMを返します。

入力値が発生した日の午前0時(午前12時)のタイムスタンプを返します。 たとえば、入力タイムスタンプが2月22日午前3時02分01秒の場合、関数は2月22日午前12時00分00秒のタイムスタンプを返します。

EXTRACTDAY(expr)

時間を抽出

EXTRACTHOUR("Order Date")
  • 2/22/1967 3:02:01 AM2/22/1967 3:00:00 AMを返します。
  • 6/17/1999 11:18:30 PM6/17/1999 11:00:00 PMを返します。

入力値が発生した時刻の時間の開始のタイムスタンプを返します。 たとえば、入力タイムスタンプが午後11時18分30秒の場合、関数は午後11時00分00秒のタイムスタンプを返します。

EXTRACTHOUR (expr)

日の時間を抽出

EXTRACTHOUROFDAY("Order Date")
  • 2014/09/24 10:58:002000/01/01 10:00:00を返します。
  • 2014/08/13 11:10:002000/01/01 11:00:00を返します

年、月、日、分および秒のデフォルト値を使用して、時間が入力値の時間と等しいタイムスタンプを返します。

EXTRACTHOUROFDAY(expr)

ミリ秒を抽出

EXTRACTMILLISECOND("Order Date")
  • 1997/01/07 15:32:02.1501997/01/07 15:32:02.150を返します。
  • 1997/01/07 18:42:01.2651997/01/07 18:42:01.265を返します。
入力値のミリ秒を含むタイムスタンプを返します。 たとえば、入力タイムスタンプが15時32分02.150秒の場合、関数は15時32分02.150秒のタイムスタンプを返します。

EXTRACTMILLISECOND(expr)

分を抽出

EXTRACTMINUTE("Order Date")
  • 6/17/1999 11:18:00 PM6/17/1999 11:18:00 PMを返します。
  • 9/2/2022 10:38:21 AM9/2/2022 10:38:00 AMを返します。

入力値が発生した時刻の分の開始のタイムスタンプを返します。 たとえば、入力タイムスタンプが午前11時38分21秒の場合、関数は午前11時38分00秒のタイムスタンプを返します。

EXTRACTMINUTE (expr)

月を抽出

EXTRACTMONTH("Order Date")
  • 2/22/1967 3:02:01 AM2/1/1967 12:00:00 AMを返します。
  • 6/17/1999 11:18:00 PM6/1/1999 12:00:00 AMを返します。

入力値が発生した月の最初の日のタイムスタンプを返します。 たとえば、入力タイムスタンプが2月22日の場合、関数は2月1日のタイムスタンプを返します。

EXTRACTMONTH(expr)

四半期を抽出

EXTRACTQUARTER("Order Date")
  • 2/22/1967 3:02:01 AMは、第1会計四半期の初日である1/1/1967 12:00:00 AMを返します。
  • 6/17/1999 11:18:00 PMは、第2会計四半期の初日である4/1/1999 12:00:00 AMを返します。

  • 9/2/2022 10:38:21 AMは、第3会計四半期の初日である7/1/2022 12:00:00 AMを返します。

    ヒント: QUARTER (expr)は、返されたタイムスタンプから四半期の序数のみを計算する場合に使用します。

入力値が発生した四半期の最初の日のタイムスタンプを返します。 たとえば、入力タイムスタンプが第3会計四半期に発生した場合、関数は7月1日のタイムスタンプを返します。

EXTRACTQUARTER(expr)

秒を抽出

EXTRACTSECOND("Order Date")
  • 1997/01/07 15:32:02.1501997/01/07 15:32:02を返します。
  • 1997/01/07 20:44:18.1631997/01/07 20:44:18を返します。

入力値のタイムスタンプを返します。 たとえば、入力タイムスタンプが15時32分02.150秒の場合、関数は15時32分02秒のタイムスタンプを返します。

EXTRACTSECOND(expr)

週を抽出

EXTRACTWEEK("Order Date")
  • 2014/09/24 10:58:002014/09/21を返します。

  • 2014/08/13 11:10:002014/08/10を返します。

入力値が発生した週の最初の曜日(日曜日)の日付を返します。 たとえば、入力タイムスタンプが9月24日水曜日の場合、関数は9月21日日曜日のタイムスタンプを返します。

ノート: 週の最初の日(つまり日曜日)が前年に該当し、集計に悪影響を及ぼす可能性がある場合、関数は前年の週の最初の日ではなく、当年の週の7日目(つまり土曜日)を返します。 たとえば、1/1/24、1/2/24および1/3/24はすべてSunday 12/29/23ではなく、Saturday 1/6/24に集約されます。

EXTRACTWEEK(expr)

年を抽出

EXTRACTYEAR("Order Date")
  • 1967/02/22 03:02:011967/01/01 00:00:00を返します。
  • 1999/06/17 23:18:001999/01/01 00:00:00を返します。

入力値が発生した年の1月1日のタイムスタンプを返します。 たとえば、入力タイムスタンプが1967年に発生した場合、関数は1967年1月1日のタイムスタンプを返します。

EXTRACTYEAR (expr)

変換関数

変換関数は、ある形式から別の形式に値を変換します。

関数 説明 構文

CAST

CAST(hiredate AS CHAR(40)) FROM employee

式またはNULLリテラルのデータ型を別のデータ型に変更します。 たとえば、customer_name (CHARまたはVARCHARのデータ型)または「誕生日」 (日時リテラル)をキャストできます。

CASTを使用して、「日付」データ型に変更します。

TODATEは使用しないでください。

CAST(expr AS type)

IFNULL

IFNULL(Sales, 0)

式がNULL値と評価されるかどうかをテストし、評価される場合は、指定された値をその式に割り当てます。

IFNULL(expr, value)

INDEXCOL

SELECT INDEXCOL(VALUEOF ("NQ_SESSION"."GEOGRAPHY_LEVEL"), Country, State, City), Revenue FROM Sales

外部情報を使用して、ログインしているユーザーが参照できるように適切な列を返します。

INDEXCOL([integer literal], [expr1] [, [expr2], ?-])

NULLIF

SELECT e.last_name, NULLIF(e.job_id, j.job_id) "Old Job ID" FROM employees e, job_history j WHERE e.employee_id = j.employee_id ORDER BY last_name, "Old Job ID";

2つの式を比較します。 それらが等しい場合、NULLが戻されます。 それらが等しくない場合、最初の式が戻されます。 最初の式には、リテラルのNULLを指定できません。

NULLIF([expression], [expression])

To_DateTime

SELECT To_DateTime ('2009-03-0301:01:00', 'yyyy-mm-dd hh:mi:ss') FROM sales

DateTime形式の文字列リテラルをDateTimeデータ型に変換します。

To_DateTime([expression], [literal])

VALUEOF

SalesSubjectArea.Customer.Region = VALUEOF("Region Security"."REGION")

フィルタでセマンティック・モデル変数の値を参照します。

expr変数をVALUEOF関数の引数として使用します。 静的モデル変数は名前で参照します。

VALUEOF(expr)

表示関数

表示関数は、問合せの結果セットを操作します。

関数 説明 構文

BottomN

BottomN(Sales, 10)

最下位から最上位までランク付けされた式の、最下位のnの値を返します。

BottomN([NumericExpression], [integer])

FILTER

FILTER(Sales USING Product = 'widget')

特定の事前集計フィルタを使用して式を計算します。

FILTER(measure USING filter_expr)

MAVG

MAVG(Sales, 10)

現在の行を含めて、結果セットのデータの最後のn行の移動平均を計算します。

MAVG([NumericExpression], [integer])

MSUM

SELECT Month, Revenue, MSUM(Revenue, 3) as 3_MO_SUM FROM Sales

現在の行を含めて、データの最後のn行の移動合計を計算します。

最初の行の合計は、最初の行の数値式と同じです。 2番目の行の合計は、最初の2つの行のデータの合計を取得することで計算され、それ以降も同様です。 n 番目の行に到達すると、合計は最後のn行のデータに基づいて計算されます。

MSUM([NumericExpression], [integer])

NTILE

NTILE(Sales, 100)

ユーザーの指定範囲における値のランクを決定します。 範囲のランクを示す整数を返します。 例では、1から100の範囲で、1が販売の最小値、100が販売の最高値となります。

NTILE([NumericExpresssion], [integer])

PERCENTILE

PERCENTILE(Sales)

数値式の引数を満たす各値のパーセント・ランクを計算します。 パーセンタイル・ランクの範囲は、0 (1番目のパーセンタイル)から1 (100番目のパーセンタイル)です。

PERCENTILE([NumericExpression])

RANK

RANK(Sales)

数値式の引数を満たす各値のランクを計算します。 最も高い数値にはランク1が割り当てられ、次に続くランクには2、3、4などの連続した整数が割り当てられます。 いくつかの値が等しい場合、それらには同じランクが割り当てられます(たとえば、1、1、1、4、5、5、7...)。

RANK([NumericExpression])

RCOUNT

SELECT month, profit, RCOUNT(profit) FROM sales WHERE profit > 200

入力として一連のレコードを取得し、これまでに発生したレコード数をカウントします。

RCOUNT([NumericExpression])

RMAX

SELECT month, profit, RMAX(profit) FROM sales

入力として一連のレコードを取得し、これまでに発生したレコードに基づいて最大値を示します。 指定するデータ型は順序付けできるものである必要があります。

RMAX([NumericExpression])

RMIN

SELECT month, profit, RMIN(profit) FROM sales

入力として一連のレコードを取得し、これまでに発生したレコードに基づいて最小値を示します。 指定するデータ型は順序付けできるものである必要があります。

RMIN([NumericExpression])

RSUM

SELECT month, revenue, RSUM(revenue) as RUNNING_SUM FROM sales

これまでに発生したレコードに基づいて累計を計算します。

最初の行の合計は、最初の行の数値式と同じです。 2番目の行の合計は、最初の2つの行のデータの合計を取得することで計算され、それ以降も同様です。

RSUM([NumericExpression])

TOPN

TOPN(Sales, 10)

最上位から最下位までランク付けされた式の、最上位のnの値を返します。

TOPN([NumericExpression], [integer])

表示関数の使用に関するヒント

  • FILTER - サブジェクト領域を使用してレポートを作成する場合は、計算で階層列を直接フィルタ処理するのではなく、サブジェクト領域で定義された階層を使用します。 つまり、サブジェクト領域にTime\Fiscal Year\Fiscal Quarterの階層がある場合、次のことを回避します:

    filter (<measure> using fiscal_quarter = 'Q4')

    filter (<measure> using fiscal_quarter = 'Q3')

    filter (<measure> using fiscal_year = 'FY24')

評価関数

評価関数は、式を通して高度な計算を行うために使用できるデータベース関数です。

埋込みデータベース関数には、1つ以上の列が必要になる場合があります。 これらの列は、関数内で%1 ... %Nによって参照されます。 実際の列は、関数の後にリストする必要があります。

関数 説明 構文

EVALUATE

SELECT EVALUATE('instr(%1, %2)', address, 'Foster City') FROM employees

指定のデータベース関数を、パラメータとしてオプションの参照列を指定し、評価のためにデータベースに渡します。

EVALUATE([string expression], [comma separated expressions])

EVALUATE_AGGR

EVALUATE_AGGR('REGR_SLOPE(%1, %2)', sales.quantity, market.marketkey)

指定のデータベース関数を、パラメータとしてオプションの参照列を指定し、評価のためにデータベースに渡します。 この関数は、GROUP BY句を使用する集計関数を対象としています。

EVALUATE_AGGR('db_agg_function(%1...%N)' [AS datatype] [, column1, columnN])

数学関数

この項で説明する数学関数は、数学演算を実行します。

関数 説明 構文

ABS

ABS(Profit)

数値式の絶対値を計算します。

exprは、数値に評価される任意の式です。

ABS(expr)

ACOS

ACOS(1)

数値式の逆余弦を計算します。

exprは、数値に評価される任意の式です。

ACOS(expr)

ASIN

ASIN(1)

数値式の逆正弦を計算します。

exprは、数値に評価される任意の式です。

ASIN(expr)

ATAN

ATAN(1)

数値式の逆正接を計算します。

exprは、数値に評価される任意の式です。

ATAN(expr)

ATAN2

ATAN2(1, 2)

y /xのアーク・タンジェントを計算します。ここで、yは最初の数値式で、xは2番目の数値式です。

ATAN2(expr1, expr2)

CEILING

CEILING(Profit)

整数以外の数値式を最も近い整数に切り上げます。 数式が整数に評価される場合、CEILING関数はその整数を返します。

CEILING(expr)

COS

COS(1)

数値式の余弦を計算します。

exprは、数値に評価される任意の式です。

COS(expr)

COT

COT(1)

数値式の余接を計算します。

exprは、数値に評価される任意の式です。

COT(expr)

DEGREES

DEGREES(1)

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

exprは、数値に評価される任意の式です。

DEGREES(expr)

EXP

EXP(4)

値を指定された値でべき乗します。 N番目の累乗に達するeを計算し、eは自然対数の基数です。

EXP(expr)

ExtractBit

Int ExtractBit(1, 5)

整数内の特定の位置にあるビットを取得します。 そのビットの位置に対応する0または1の整数を返します。

ExtractBit([Source Number], [Digits])

FLOOR

FLOOR(Profit)

整数以外の数値式を最も近い整数に切り下げます。 数式が整数に評価される場合、FLOOR関数はその整数を返します。

FLOOR(expr)

LOG

LOG(1)

式の自然対数を計算します。

exprは、数値に評価される任意の式です。

LOG(expr)

LOG10

LOG10(1)

式の基数10の対数を計算します。

exprは、数値に評価される任意の式です。

LOG10(expr)

MOD

MOD(10, 3)

最初の数値式を2番目の数値式で除算し、商の余りを返します。

MOD(expr1, expr2)

PI

PI()

パイの定数値を返します。

PI()

POWER

POWER(Profit, 2)

最初の数値式を取得し、2番目の数値式で指定された値でべき乗します。

POWER(expr1, expr2)

RADIANS

RADIANS(30)

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

exprは、数値に評価される任意の式です。

RADIANS(expr)

RAND

RAND()

0から1の疑似乱数を返します。

RAND()

RANDFromSeed

RAND(2)

シード値に基づいた疑似乱数を返します。 特定のシード値に対して、乱数の同一セットが生成されます。

RAND(expr)

ROUND

ROUND(2.166000, 2)

数値式をn桁の精度で丸めます。

exprは、数値に評価される任意の式です。

integerは、精度の桁数を表す任意の正の整数です。

ROUND(expr, integer)

SIGN

SIGN(Profit)

次の値を返します:

  • 数値式が正数に評価される場合は1

  • 数値式が負数に評価される場合は-1

  • 数値式がゼロに評価される場合は0

SIGN(expr)

SIN

SIN(1)

数値式の正弦を計算します。

SIN(expr)

SQRT

SQRT(7)

数値式の引数の平方根を計算します。 数値式は、負数ではない数値に評価される必要があります。

SQRT(expr)

TAN

TAN(1)

数値式の正接を計算します。

exprは、数値に評価される任意の式です。

TAN(expr)

TRUNCATE

TRUNCATE(45.12345, 2)

小数を切り捨てて、小数点から指定された桁数の数値を返します。

exprは、数値に評価される任意の式です。

integerは、戻す小数点以下の桁数の文字数を表す任意の正の整数です。

TRUNCATE(expr, integer)

集計実行関数

集計関数を実行すると、複数の値に対して操作を実行しサマリー結果を作成できます。

関数 説明 構文

MAVG

 

現在の行を含めて、結果セットのデータの最後のn行の移動平均を計算します。

exprは、数値に評価される任意の式です。integerは任意の正の整数です。 最後のn行のデータ平均を表します。

MAVG(expr, integer)

MSUM

select month, revenue, MSUM(revenue, 3) as 3_MO_SUM from sales_subject_area

現在の行を含めて、データの最後のn行の移動合計を計算します。

exprは、数値に評価される任意の式です。integerは任意の正の整数です。 データの最後のn行の合計を表します。

MSUM(expr, integer)

RSUM

SELECT month, revenue, RSUM(revenue) as RUNNING_SUM from sales_subject_area

これまでに発生したレコードに基づいて累計を計算します。

exprは、数値に評価される任意の式です。

RSUM(expr)

RCOUNT

select month, profit, RCOUNT(profit) from sales_subject_area where profit > 200

入力として一連のレコードを取得し、これまでに発生したレコード数をカウントします。

exprは任意のデータ型の式です。

RCOUNT(expr)

RMAX

SELECT month, profit,RMAX(profit) from sales_subject_area

入力として一連のレコードを取得し、これまでに発生したレコードに基づいて最大値を示します。

exprは任意のデータ型の式です。

RMAX(expr)

RMIN

select month, profit,RMIN(profit) from sales_subject_area

入力として一連のレコードを取得し、これまでに発生したレコードに基づいて最小値を示します。

exprは任意のデータ型の式です。

RMIN(expr)

空間関数

空間関数により、データをモデル化するときに地理的分析を実行できます。 たとえば、2つの地理的領域(シェイプまたはポリゴン)間の距離を計算します。

ノート:

これらの空間関数は、ビジュアライゼーション・ワークブックのカスタム計算では使用できません。
関数 説明 構文
GeometryArea

GeometryArea(Shape)

シェイプが占有する領域を計算します。

GeometryArea(Shape)

GeometryDistance

GeometryDistance(TRIP_START, TRIP_END)

2つのシェイプ間の距離を計算します。

GeometryDistance(Shape 1, Shape 2)

GeometryLength

GeometryLength(Shape)

シェイプの周囲を計算します。

GeometryLength(Shape)

GeometryRelate

GeometryRelate(TRIP_START, TRIP_END)

あるシェイプが別のシェイプの内側にあるかどうかを判別します。 TRUEまたはFALSEを文字列(varchar)として返します。

GeometryRelate(Shape 1, Shape 2)

GeometryWithinDistance

GeometryWithinDistance(TRIP_START, TRIP_END, 500)

2つのシェイプが、相互に指定された距離内にあるかどうかを判断します。 TRUEまたはFALSEを文字列(varchar)として返します。

GeometryWithinDistance(Shape1, Shape2, DistanceInFloat)

文字列関数

文字列関数は、様々な文字操作を実行します。 これらは文字列に対して動作します。

関数 説明 構文

ASCII

ASCII('a')

単一文字列を0から255の対応するASCIIコードに変換します。 文字式が複数の文字に評価される場合は、式の最初の文字に対応するASCIIコードが返されます。

exprは、文字列として評価される任意の式です。

ASCII(expr)

BIT_LENGTH

BIT_LENGTH('abcdef')

指定された文字列の長さをビット単位で返します。 各Unicode文字の長さは2バイトです(16ビットに相当)。

exprは、文字列として評価される任意の式です。

BIT_LENGTH(expr)

CHAR

CHAR(35)

0から255の数値をASCIIコードに対応する文字値に変換します。

exprは、0から255の間の数値に評価される任意の式です。

CHAR(expr)

CHAR_LENGTH

CHAR_LENGTH(Customer_Name)

指定した文字列の長さを文字数で返します。 先頭と末尾の空白は、文字列の長さとして計算されません。

exprは、文字列として評価される任意の式です。

CHAR_LENGTH(expr)

CONCAT

SELECT DISTINCT CONCAT ('abc', 'def') FROM employee

2つの文字列を連結します。

exprは、カンマで区切られた文字列に評価される式です。

CONCATでは、書式設定されていない生データを使用する必要があります。

CONCAT(expr1, expr2)

INSERT

SELECT INSERT('123456', 2, 3, 'abcd') FROM table

指定された文字列を別の文字列の指定された場所に挿入します。

expr1は、文字列として評価される任意の式です。 ターゲット文字列を示します。

integer1は、ターゲット文字列の先頭から2番目の文字列を挿入する文字数を表す任意の正の整数です。

integer2は、ターゲット文字列の2番目の文字列で置換される文字数を表す任意の正の整数です。

expr2は、文字列として評価される任意の式です。 ターゲット文字列に挿入される文字列を示します。

INSERT(expr1, integer1, integer2, expr2)

LEFT

SELECT LEFT('123456', 3) FROM table

文字列の左側から指定された文字数を返します。

exprは、文字列として評価される任意の式です。

integerは、戻す文字列の左側の文字数を表す任意の正の整数です。

LEFT(expr, integer)

長さ

LENGTH(Customer_Name)

指定した文字列の長さを文字数で返します。 末尾の空白文字を除いた長さを返します。

exprは、文字列として評価される任意の式です。

LENGTH(expr)

LOCATE

LOCATE('d' 'abcdef')

別の文字列での文字列の数値位置を返します。 文字列が検索される文字列で見つからない場合、関数は値0を返します。

expr1は、文字列として評価される任意の式です。 検索する文字列を示します。

expr2は、文字列として評価される任意の式です。

検索対象の文字列を示します。

LOCATE(expr1, expr2)

LOCATEN

LOCATEN('d' 'abcdef', 3)

LOCATEと同様に、別の文字列での文字列の数値位置を返します。 LOCATENには整数の引数があり、検索を開始する開始位置を指定できます。

expr1は、文字列として評価される任意の式です。 検索する文字列を示します。

expr2は、文字列として評価される任意の式です。 検索対象の文字列を示します。

integerは、文字列の検索を開始する位置を表す正(ゼロ以外)の整数です。

LOCATEN(expr1, expr2, integer)

LOWER

LOWER(Customer_Name)

文字列を小文字に変換します。

exprは、文字列として評価される任意の式です。

LOWER(expr)

OCTET_LENGTH

OCTET_LENGTH('abcdef')

指定された文字列のバイト数を返します。

exprは、文字列として評価される任意の式です。

OCTET_LENGTH(expr)

POSITION

POSITION('d', 'abcdef')

文字式でのstrExpr1の数値位置を返します。 strExpr1が見つからない場合、関数は0を返します。

expr1は、文字列として評価される任意の式です。 ターゲット文字列内で検索する文字列を示します。 たとえば、"d"です。

expr2は、文字列として評価される任意の式です。 検索対象のターゲット文字列を示します。 たとえば、"abcdef"です。

POSITION(expr1, expr2)

REPEAT

REPEAT('abc', 4)

指定した式をn回繰り返します。

exprは、文字列として評価される任意の式です。

integerは、文字列を繰り返す回数を表す任意の正の整数です。

REPEAT(expr, integer)

置換

REPLACE('abcd1234', '123', 'zz')

指定された文字式の1つ以上の文字を別の1つ以上の文字で置換します。

expr1は、文字列として評価される任意の式です。 これは、文字が置換される文字列です。

expr2は、文字列として評価される任意の式です。 この2つ目の文字列は、置換対象の最初の文字列の文字を識別します。

expr3は、文字列として評価される任意の式です。 この3番目の文字列は、最初の文字列に置換する文字を指定します。

REPLACE(expr1, expr2, expr3)

RIGHT

SELECT RIGHT('123456', 3) FROM table

文字列の右側から指定された文字数を返します。

exprは、文字列として評価される任意の式です。

integerは、戻す文字列の右からの文字数を表す任意の正の整数です。

RIGHT(expr, integer)

SPACE

SPACE(2)

空白を挿入します。

integerは、挿入するスペースの数を示す任意の正の整数です。

SPACE(expr)

SUBSTRING

SUBSTRING('abcdef' FROM 2)

元の文字列内に固定された文字数から始まる新しい文字列を作成します。

exprは、文字列として評価される任意の式です。

startPosは、結果が開始される文字列の左側からの文字数を表す任意の正の整数です。

SUBSTRING([SourceString] FROM [StartPostition])

SUBSTRINGN

SUBSTRING('abcdef' FROM 2 FOR 3)

SUBSTRINGと同様に、固定文字数からオリジナルの文字列の新しい文字列を作成します。

SUBSTRINGN整数の引数を使用して、新しい文字列の長さを文字数で指定できます。

exprは、文字列として評価される任意の式です。

startPosは、結果が開始される文字列の左側からの文字数を表す任意の正の整数です。

SUBSTRING(expr FROM startPos FOR length)

TrimBoth

Trim(BOTH '_' FROM '_abcdef_')

指定された先頭文字および末尾文字を文字列から削除します。

charは、任意の1文字です。 この指定(および必要な一重引用符)を省略すると、空白文字がデフォルトとして使用されます。

exprは、文字列として評価される任意の式です。

TRIM(BOTH char FROM expr)

TRIMLEADING

TRIM(LEADING '_' FROM '_abcdef')

指定された先頭文字を文字列から削除します。

charは、任意の1文字です。 この指定(および必要な一重引用符)を省略すると、空白文字がデフォルトとして使用されます。

exprは、文字列として評価される任意の式です。

TRIM(LEADING char FROM expr)

TRIMTRAILING

TRIM(TRAILING '_' FROM 'abcdef_')

指定された末尾文字を文字列から削除します。

charは、任意の1文字です。 この指定(および必要な一重引用符)を省略すると、空白文字がデフォルトとして使用されます。

exprは、文字列として評価される任意の式です。

TRIM(TRAILING char FROM expr)

UPPER

UPPER(Customer_Name)

文字列を大文字に変換します。

exprは、文字列として評価される任意の式です。

UPPER(expr)

システム関数

USERシステム関数は、セッションに関連する値を返します。 たとえば、サインインしたユーザーのユーザー名です。

関数 説明 構文

DATABASE

 

ログオンしているサブジェクト領域の名前を返します。

DATABASE()

USER

 

ログオンしているセマンティック・モデルのユーザー名を返します。

USER()

時系列関数

時系列関数では、時間ディメンションに基づいてデータを集計および予測できます。 たとえば、AGO関数を使用して、1年前からの収益を計算できます。

時間ディメンションのメンバーは、その関数のレベル以下である必要があります。 そのため、特定のレベル以下のメンバーを一意に識別する1つ以上の列を問合せに投影する必要があります。

関数 説明 構文

AGO

SELECT Year_ID, AGO(sales, year, 1)

過去の指定された期間のメジャーの集計値を計算します。 たとえば、1年前の月次収益を計算するには、AGO(Revenue, Year, 1, SHIP_MONTH)を使用します。 前四半期の四半期収益を計算するには、AGO(Revenue, Quarter, 1)を使用します。

AGO(MEASURE, TIME_LEVEL, OFFSET)

説明:

  • MEASURE 収益など、計算するメジャーを表します。
  • TIME_LEVELは、時間間隔(年、四半期、月、週または日)を表します。
  • OFFSET 計算から戻される時間間隔の数を表します。たとえば、1年の場合は1です。

PERIODROLLING

SELECT Month_ID, PERIODROLLING (monthly_sales, -1, 1)

x単位の時間から開始し、現在の時間からy単位の時間で終了する期間におけるメジャーの集計を計算します。 たとえば、PERIODROLLINGを使用して、現在の四半期前の四半期で始まり、現在の四半期後の四半期で終わる期間の売上を計算できます。

PERIODROLLING(measure, x [,y])

説明:

  • MEASURE メジャー列の名前を表します。
  • Xは現在の時間からのオフセットを表す整数です。
  • Yは関数が計算する時間単位の数を表す整数です。
  • HIERARCHY 時間ディメンションの階層の名前を表すオプションの引数(YRMONDAYなど)で、時間ウィンドウのコンピュートに使用します。

TODATE

SELECT Year_ID, Month_ID, TODATE (sales, year)

期間の開始から最新の期間までのメジャーの集計値を計算します。たとえば、年度開始から現在の計算。

たとえば、年累計売上を計算するには、TODATE(sales, year)を使用します。

TODATE(MEASURE, TIME_LEVEL)

説明:

  • MEASURE salesなど、少なくとも1つのメジャー列を参照する式を表します。
  • TIME_LEVELは、時間間隔(年、四半期、月、週または日)を表します。