プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Data Visualizationユーザーズ・ガイド
12c (12.2.1.4.0)
E96107-02
目次へ移動
目次

前

E 式エディタのリファレンス

ここでは、式エディタで使用できる式要素について説明します。

内容は次のとおりです。

SQL演算子

SQL演算子を使用して、式間の比較を指定します。

様々なタイプのSQL演算子を使用できます。

演算子 説明 構文

BETWEEN

"COSTS"."UNIT_COST" BETWEEN 100.0 AND 5000.0

値が2つの境界値の間(境界値は含まない)にあるかどうかを判断します。

条件を否定する場合は、BETWEENの前にNOTを付けることができます。

BETWEEN [LowerBound] AND [UpperBound]

IN

"COSTS"."UNIT_COST" IN(200, 600, 'A')

値が値のセット内に存在するかどうかを判断します。

IN ([Comma Separated List])

IS NULL

"PRODUCTS"."PROD_NAME" IS NULL

値がnullかどうかを判断します。

IS NULL

LIKE

"PRODUCTS"."PROD_NAME" LIKE 'prod%'

値が文字列のすべてまたは一部と一致するかどうかを判断します。通常、ワイルドカード文字とともに使用して、ゼロ文字以上の任意の文字列(%)に一致するか、任意の単一の文字(_)と一致することを示します。

LIKE

+

 

加算用のプラス記号。

+

-

 

減算用のマイナス記号。

-

* または X

 

乗算用の乗算記号。

*

X

/

 

除算用の除算記号。

/

%

 

パーセンテージ

%

||

 

文字列の連結。

||

(

 

左カッコ。

(

)

 

右カッコ。

)

>

 

大なり記号。値が比較対象より大きいことを示します。

>

<

 

小なり記号。値が比較対象より小さいことを示します。

<

=

 

等号。同じ値であることを示します。

=

>=

 

以上記号。値が比較対象と同じか、比較対象より大きいことを示します。

>=

<=

 

以下記号。値が比較対象と同じか、比較対象より小さいことを示します。

<=

<>

 

等しくありません。値が比較対象より大きいか小さいが、異なることを示します。

<>

,

 

カンマ。リスト内の要素を区切るために使用されます。

,

条件式

条件式を使用して、値を変換する式を作成します。

ここで説明する条件式は、ある形式から別の形式に値を変換する式を作成するための構築ブロックです。

次のルールに従います。

  • CASE文では、ANDの優先度がORよりも高くなります
  • 文字列は一重引用符で囲む必要があります。
説明 構文

CASE (If)

CASE

WHEN score-par < 0 THEN 'Under Par'

WHEN score-par = 0 THEN 'Par'

WHEN score-par = 1 THEN 'Bogey'

WHEN score-par = 2 THEN 'Double Bogey'

ELSE 'Triple Bogey or Worse'

END

WHEN条件を評価し、条件を満たす場合は対応するTHEN式の値が割り当てられます。

一致するWHEN条件がない場合は、ELSE式に指定されているデフォルト値が割り当てられます。ELSE式が指定されていない場合は、ELSE NULLが自動的に追加されます。

CASE WHEN request_condition1 THEN expr1 ELSE expr2 END

CASE (Switch)

CASE Score-par

WHEN -5 THEN 'Birdie on Par 6'

WHEN -4 THEN 'Must be Tiger'

WHEN -3 THEN 'Three under par'

WHEN -2 THEN 'Two under par'

WHEN -1 THEN 'Birdie'

WHEN 0 THEN 'Par'

WHEN 1 THEN 'Bogey'

WHEN 2 THEN 'Double Bogey'

ELSE 'Triple Bogey or Worse'

END

CASE (Lookup)とも呼ばれます。最初の式の値が確認され、次にWHEN式が評価されます。最初の式がいずれかのWHEN式と一致する場合は、対応するTHEN式の値が割り当てられます。

どのWHEN式とも値が一致しない場合は、ELSE式に指定されているデフォルト値が割り当てられます。ELSE式が指定されていない場合は、ELSE NULLが自動的に追加されます。

最初の式が複数のWHEN句の式と一致する場合は、最初に一致した式のみが割り当てられます。

CASE expr1 WHEN expr2 THEN expr3 ELSE expr4 END

IfCase > Else

   

ELSE [expr]

IfCase > IfNull

   

IfNull([expr], [value])

IfCase > NullIf

   

NullIf([expr], [expr])

IfCase > When

   

WHEN [Condition] THEN [expr]

IfCase > Case

   

CASE WHEN [Condition] THEN [expr] END

SwitchCase > Else

   

ELSE [expr]

SwitchCase > IfNull

   

IfNull([expr], [value])

SwitchCase > NullIf

   

NullIf([expr], [expr])

SwitchCase > When

   

WHEN [Condition] THEN [expr]

関数

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

内容は次のとおりです。

集計関数

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

関数 説明 構文

Aggregate At

AGGREGATE(sales AT month, region)

指定するレベルに基づいて列を集計します。

measureは、メジャー列の名前です。levelは、集計するレベルです。オプションで、複数のレベルを指定できます。1番目の引数で指定したメジャーのメジャー・レベルとして使用されるレベルを含むディメンションのレベルを指定できません。たとえば、monthはyearly_salesのメジャー・レベルとして使用される同じ時間ディメンションからのものであるため、この関数でAGGREGATE(yearly_sales AT month)と指定することはできません。

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

Avg

Avg(Sales)

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

Avg(expr)

AvgDistinct

 

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

Avg(DISTINCT expr)

Bin

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

BIN関数は、指定された数値式を、指定された数の等幅バケットに分類します。この関数は、ビン番号、またはビン間隔の2つのエンド・ポイントのいずれかを返すことができます。numeric_exprは、ビンに対するメジャーまたは数値属性です。BY grain_expr1,…, grain_exprNは、numeric_exprを計算するグレインを定義する式のリストです。BYは、メジャー式の場合は必須で、属性式の場合はオプションです。WHEREは、数値がビンに割り当てられる前にnumeric_exprに適用されるフィルタです。INTO number_of_bins BINSは、返すビンの数です。BETWEEN min_value AND max_valueは、最も外側のビンのエンドポイントに使用する最小値と最大値です。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は、数値に評価される任意の式です。integerは正の整数です。結果セットに表示されるランキングの最下位数を表し、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は、数値に評価される任意の式です。integerは正の整数です。最後の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 (0番目のパーセンタイル)から1 (100番目のパーセンタイル)です。

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は、数値に評価される任意の式です。integerは正の整数です。結果セットに表示されるランキングの最上位数を表し、1が最高ランクです。

TOPN(expr, integer)

分析関数

分析関数では、トレンド線やクラスタなどのモデルを使用してデータを調査できます。

関数 説明 構文

Trendline

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

線形または指数モデルに適合させて、適合した値またはモデルを返します。numeric_exprはトレンドのY値を表し、系列(時間列)はX値を表します。

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

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

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

Evaluate_Script

EVALUATE_SCRIPT('filerepo://obiee.Outliers.xml', 'isOutlier', 'algorithm=kmeans;id=%1;arg1=%2;arg2=%3;useRandomSeed=False;', customer_number, expected_revenue, customer_age)

1つ以上の列またはリテラル式を入力として渡して、script_file_pathに指定されたPythonスクリプトを実行します。関数の出力はoutput_column_nameによって決まります。

EVALUATE_SCRIPT(script_file_path, output_column_name, options, [runtime_binded_options])

カレンダ関数

カレンダ関数は、暦年に基づいてデータ型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)

変換関数

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

関数 説明 構文

Cast

Cast(hiredate AS CHAR(40)) FROM employee

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

日付データ型に変更する場合は、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データ型に変換します。

To_DateTime([expression], [literal])

表示関数

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

関数 説明 構文

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

評価関数

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

埋込みデータベース関数には、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)

値を指定された値でべき乗します。eのn乗を計算します。ここで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)

文字列関数

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

関数 説明 構文

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つの文字列を連結します。

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

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

Length(Customer_Name)

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

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

LENGTH(expr)

Locate

Locate('d' 'abcdef')

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

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

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

検索される文字列を示します。

LOCATE(expr1, expr2)

LocateN

Locate('d' 'abcdef', 3)

Locateと同様に、別の文字列での文字列の数値位置を返します。LocateNは、検索の開始位置を指定できる整数の引数を含みます。

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

expr2は、文字列に評価される任意の式です。検索する文字列を識別します。intergerは、文字列の検索を始める開始位置を表す、任意の正の(ゼロ以外の)整数です。

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は、文字列に評価される任意の式です。ターゲット文字列で検索する文字列を示します。

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

POSITION(expr1 IN expr2)

Repeat

Repeat('abc', 4)

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

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

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

REPEAT(expr, integer)

Replace

Replace('abcd1234', '123', 'zz')

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

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

expr2は、文字列に評価される任意の式です。この2番目の文字列は、1番目の文字列で置換される文字を示します。

expr3は、文字列に評価される任意の式です。この3番目の文字列は、1番目の文字列内に代入する文字を指定します。

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は、新しい文字列の長さを文字数で指定できる整数の引数を含みます。

xprは、文字列に評価される任意の式です。

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

 

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

DATABASE()

User

 

ログオンしているOracle BI Repositoryのユーザー名を返します。

USER()

時系列関数

時系列関数は、時間ディメンションを操作する集計関数です。

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

関数 説明 構文

Ago

SELECT Year_ID, Ago(sales, year, 1)

現在の時刻から指定された過去の期間までのメジャーの集計値を計算します。たとえば、AGOを使用すると、現四半期の各月の売上および対応する1つ前の四半期の売上を生成できます。

AGO(expr, time_level, offset)

Periodrolling

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

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

measureは、メジャー列の名前です。

x xは、次のものを指定する整数です

現在の時刻からのオフセット。

yは、この関数が計算する時間単位の数を指定します。

hierarchyは、yr、mon、dayなど、時間ウィンドウの計算に使用する時間ディメンション内の階層の名前を指定するオプションの引数です。

PERIODROLLING(measure, x [,y])

ToDate

SELECT Year_ID, Month_ID, ToDate (sales, year)

指定された期間の最初から現在の表示時刻までのメジャーを集計します。たとえば、この関数では過去1年間の売上を計算できます。

exprは、1つ以上のメジャー列を参照する式です。

time_levelは、四半期、月、年などの期間のタイプです。

TODATE(expr, time_level)

Forecast

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

指数平滑法またはARMIAを使用して、seriesに対して指定されたメジャーの時系列モデルを作成し、numPeriodsで指定された期間セットの予測を出力します。

numeric_exprは、予測するメジャーを表します。

seriesは、予測モデルが作成される時間グレインを示します。これは、1つ以上の時間ディメンション列のリストです。seriesを省略すると、問合せから時間グレインが決定されます。

output_column_nameは出力列です。有効な値は、'forecast'、'low'、'high'および'predictionInterval'です。

optionsは、;で区切られたname=valueのペアの文字列リストです。runtime_binded_optionsを使用して指定できる%1 ... %Nを値に含めることができます。

runtime_binded_optionsは、オプションであり、ランタイム・バインド列またはリテラル式のカンマ区切りリストです。

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

定数

式で定数を使用できます。

使用可能な定数は、Date、TimeおよびTimestampです。

定数 説明 構文

Date

DATE [2014-04-09]

特定の日付を挿入します。

DATE [yyyy-mm-dd]

Time

TIME [12:00:00]

特定の時間を挿入します。

TIME [hh:mi:ss]

TimeStamp

TIMESTAMP [2014-04-09 12:00:00]

特定のタイムスタンプを挿入します。

TIMESTAMP [yyyy-mm-dd hh:mi:ss]

式では、CHARINTNUMERICなどのデータ型を使用できます。

たとえば、式またはnullリテラルのデータ型を別のデータ型に変更するCAST式を作成する場合は、型を使用します。