ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Business Intelligence基礎ガイド
11gリリース1 (11.1.1)
E64853-01
  目次へ移動
目次

前
 
次
 

関数

トピック:

集計関数

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

関数 説明
Avg
Avg(Sales)
数値のセットの平均(平均値)を計算します。
Count
Count(Products)
null以外の値を含む項目の数を判別します。
First First(Sales) 式引数のnull以外の最初の戻り値を選択します。First関数は、明示的に定義されたディメンションで指定される最も詳細なレベルで動作します。
Last
Last(Sales)
式のnull以外の最後の戻り値を選択します。
Max
Max(Revenue)
数値式引数に一致する行の最大値(最も高い数値)を計算します。
Median
Median(Sales)
数値式引数に一致する行のメジアン(中央)値を計算します。偶数行がある場合、メジアンは2つの中央行の平均です。通常、この関数はdouble値を返します。
Min
Min(Revenue)
数値式引数に一致する行の最小値(最も低い数値)を計算します。
StdDev
StdDev(Sales)
StdDev(DISTINCT Sales)
値のセットの標準偏差を返します。通常、戻り型はdoubleです。
StdDev_Pop
StdDev_Pop(Sales)
StdDev_Pop(DISTINCT Sales)
母分散と標準偏差の計算式を使用して、値のセットの標準偏差を返します。
Sum
Sum(Revenue)
数値式引数に一致するすべての値を加算して得られる合計を計算します。

カレンダ関数

カレンダ関数は、暦年に基づいてデータ型DATEおよびDATETIMEのデータを操作します。

関数 説明
Current_Date
Current_Date
現在の日付を戻します。
Current_Time
Current_Time(3)
たとえば、HH:MM:SS.SSSなど、指定された精度の桁数で現在の時刻を返します。

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

Current_TimeStamp
Current_TimeStamp(3)
指定された精度の桁数で現在の日付/タイムスタンプを返します。
DayName
DayName(Order_Date)
指定された日付式について、どの曜日かを示す名前を返します。
DayOfMonth
DayOfMonth(Order_Date)
指定された日付式について、1か月のうちのどの日付かを示す数値を返します。
DayOfWeek
DayOfWeek(Order_Date)
指定された日付式について、どの曜日かを示す1から7の数値を返します。たとえば、1は常に日曜に対応し、2は月曜に対応し、同様の要領で7を返す土曜まであります。
DayOfYear
DayOfYear(Order_Date)
指定された日付式について、年の通算日に対応する数字(1から366)を返します。
Day_Of_Quarter
Day_Of_Quarter(Order_Date)
指定された日付式について、四半期の通算日に対応する数字(1から92)を返します。
Hour
Hour(Order_Time)
指定された時刻式について、時に対応する数字(0から23)を返します。たとえば、0は午前12時に対応し、23は午後11時に対応します。
Minute
Minute(Order_Time)
指定された時刻式について、分に対応する数字(0から59)を返します。
Month
Month(Order_Time)
指定された日付式について、月に対応する数字(1から12)を返します。
MonthName
MonthName(Order_Time)
指定された日付式について、月の名前を返します。
Month_Of_Quarter
Month_Of_Quarter(Order_Date)
指定された日付式について、四半期の通算月に対応する数字(1から3)を返します。
Now
Now()
現在のタイムスタンプを返します。Now関数はCurrent_Timestamp関数と等価です。
Quater_Of_Year
Quarter_Of_Year(Order_Date)
指定された日付式について、年の四半期に対応する数字(1から4)を返します。
Second(Order_Time)
指定された時刻式について、秒に対応する数字(0から59)を返します。
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です。

TimeStampDiff
TimeStampDiff(SQL_TSI_MONTH, Time."Order Date",CURRENT_DATE)
2つのタイムスタンプ間の指定された間隔の合計数を返します。

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

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

変換関数

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

関数 説明
Cast
Cast(hiredate AS CHAR(40)) FROM employee
式またはnullリテラルのデータ型を別のデータ型に変更します。たとえば、customer_name (CharまたはVarcharのデータ型)またはbirthdate(日時リテラル)をキャストできます。

日付データ型に変更する場合は、Castを使用します。ToDateは使用しないでください。

IfNull
IfNull(Sales, 0)
ある式がnull値と評価されるかどうかをテストし、評価された場合は、指定された値をその式に割り当てます。
IndexCol
SELECT IndexCol(VALUEOF
(NQ_SESSION.GEOGRAPHY_LEVEL),
Country, State, City),
Revenue FROM Sales
外部情報を使用して、サインイン・ユーザーが表示するのに適切な列を戻します。
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を指定できません。
To_DateTime
SELECT To_DateTime
('2009-03-0301:01:00',
'yyyy-mm-dd hh:mi:ss') 
FROM sales
日時書式の文字列リテラルを日時データ型に変換します。

表示関数

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

関数 説明
BottomN
BottomN(Sales, 10)
最低から最高にランク付けされた式のn番目に下位の値を返します。
Filter
Filter(Sales USING Product = 'widgit')
特定の事前集計済フィルタを使用して式を計算します。
Mavg
Mavg(Sales, 10)
現在の行を含めて、結果セットのデータの最後のn行の移動平均を計算します。
Msum
SELECT Month, Revenue,
Msum(Revenue, 3) as 3_MO_SUM
FROM Sales
現在の行を含めて、データの最後のn行の移動合計を計算します。

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

NTile
Ntile(Sales, 100)
ユーザー指定範囲内での値のランクを決定します。範囲内のランクを示す整数が返されます。この例では、1から100までの範囲(最低がsale = 1で最高がsale = 100)を示しています。
Percentile
Percentile(Sales)
数値式引数に一致する各値のパーセント・ランクを計算します。パーセンタイル・ランクの範囲は、0(1番目のパーセンタイル)から1(100番目のパーセンタイル)です。
Rank
Rank(Sales)
数値式引数に一致する各値のランクを計算します。最も高い数にはランク1が割り当てられ、次に続くランクには2、3、4などの連続した整数が割り当てられます。ある値が等しい場合、同じランクが割り当てられます(例: 1、1、1、4、5、5、7...)。
Rcount
SELECT month, profit, Rcount(profit) FROM sales 
WHERE profit > 200
入力として一連のレコードを取得して、見つかったレコード数をカウントします。
Rmax
SELECT month, profit, 
Rmax(profit) FROM sales
入力として一連のレコードを取得して、そこまでに処理されたレコードに基づいて最大値を表示します。指定するデータ型はソートできるデータ型である必要があります。
Rmin
SELECT month, profit, 
Rmin(profit) FROM sales
入力として一連のレコードを取得して、そこまでに処理されたレコードに基づいて最小値を表示します。指定するデータ型はソートできるデータ型である必要があります。
Rsum
SELECT month, revenue,
Rsum(revenue) as RUNNING_SUM FROM sales
そこまでに処理されたレコードに基づいて累計を計算します。

最初の行の合計は、最初の行の数値式と同じです。2番目の行の合計は、最初の2つの行のデータ合計を取得することで計算され、同様に続いて実行されます。

TopN
TopN(Sales, 10)
最高から最低にランク付けされた式のn番目に上位の値を返します。

評価関数

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

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

関数 説明
Evaluate
SELECT EVALUATE('instr(%1, %2)',
 address, 'Foster City') FROM employees
パラメータとして(オプションで)参照列を使用する、指定されたデータベース関数をデータベースに渡して評価します。
Evaluate_Aggr
EVALUATE_AGGR('REGR_SLOPE(%1, %2)',
 sales.quantity, market.marketkey)
パラメータとして(オプションで)参照列を使用する、指定されたデータベース関数をデータベースに渡して評価します。この関数は、GROUP BY句を使用する集計関数を対象としています。

算術関数

ここで説明する算術関数では、数学的な操作を実行します。

関数 説明
Abs
Abs(Profit)
数値式の絶対値を計算します。
Acos
Acos(1)
数値式のアークコサインを計算します。
Asin
Asin(1)
数値式のアークサインを計算します。
Atan
Atan(1)
数値式のアークタンジェントを計算します。
Atan2
Atan2(1, 2)
y/xのアーク・タンジェントを計算します。ここでyは最初の数値式、xは2番目の数値式です。
Ceiling
Ceiling(Profit)
整数以外の数値式を最も近い整数に切り上げます。数式が整数に評価される場合、CEILING関数はその整数を返します。
Cos
Cos(1)
数値式のコサインを計算します。
Cot
Cot(1)
数値式のコタンジェントを計算します。
Degrees
Degrees(1)
式をラジアンから次数に変換します。
Exp
Exp(4)
値を指定された値でべき乗します。
ExtractBit
Int ExtractBit(1, 5)
整数内の特定の位置にあるビットを取得します。そのビットに対応する0か1の整数が返されます。
Floor
Floor(Profit)
整数以外の数値式を最も近い整数に切り下げます。数式が整数に評価される場合、FLOOR関数はその整数を返します。
Log
Log(1)
式の自然対数を計算します。
Log10
Log10(1)
式の十進法の対数を計算します。
Mod
Mod(10, 3)
最初の数値式を2番目の数値式で除算し、商の剰余を返します。
Pi
Pi()
PIの定数値を戻します。
Power
Power(Profit, 2)
最初の数値式を使用して、これを2番目の数値式で指定された累乗にします。
Radians
Radians(30)
式を次数からラジアンに変換します。
Rand
Rand()
0から1の擬似乱数を返します。
RandFromSeed
Rand(2)
シード値に基づいた擬似乱数を返します。特定のシード値に対して、乱数の同一のセットが生成されます。
Round
Round(2.166000, 2)
数値式をn桁の精度で丸めます。
Sign
Sign(Profit)
この関数では、次のように値が返されます。
  • 数値式が正数に評価される場合は、1

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

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

Sin
Sin(1)
数値式のサインを計算します。
Sqrt
Sqrt(7)
数値式引数の平方根を計算します。数式は、負数でない数値に評価される必要があります。
Tan
Tan(1)
数値式のタンジェントを計算します。
Truncate
Truncate(45.12345, 2)
小数部分を切り捨て、小数点から指定した数の桁数を返します。

文字列関数

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

関数 説明
Ascii
Ascii('a')
シングル・キャラクタ文字列を、0から255までの対応するASCIIコードに変換します。文字式が複数の文字に評価される場合は、式の最初の文字に対応するASCIIコードが返されます。
Bit_Length
Bit_Length('abcdef')
指定した文字列の長さをビット単位で返します。各Unicode文字の長さは2バイトです(16ビットに相当)。
Char
Char(35)
0から255の間の数値を対応するASCIIコードの文字値に変換します。
Char_Length
Char_Length(Customer_Name)
指定した文字列の長さを文字数で返します。先頭と末尾の空白は、文字列の長さとして計算されません。
Concat
SELECT DISTINCT Concat
('abc', 'def') FROM employee
2つの文字列を連結します。
Insert
SELECT Insert('123456', 2, 3,
 'abcd') FROM table
指定した文字列を別の文字列の指定した場所に挿入します。
Left
SELECT Left('123456', 3)
 FROM table
文字列の左側から、指定された文字数を返します。
Length
Length(Customer_Name)
指定した文字列の長さを文字数で返します。末尾の空白文字を除いた長さが返されます。
Locate
Locate('d' 'abcdef')
別の文字列での文字列の数値位置を返します。文字列が検索される文字列で見つからない場合、関数は値0を返します。
LocateN
Locate('d' 'abcdef', 3)
Locateと同様に、別の文字列での文字列の数値位置を返します。LocateNには、検索の開始位置を指定できる整数の引数が含まれます。
Lower
Lower(Customer_Name)
文字列を小文字に変換します。
Octet_Length
Octet_Length('abcdef')
指定した文字列のバイト数を返します。
位置
Position('d', 'abcdef')
文字式でのstrExpr1の数値位置を返します。strExpr1が見つからない場合、関数は0を返します。
Repeat
Repeat('abc', 4)
指定した式をn回繰り返します。
Replace
Replace('abcd1234', '123',
 'zz')
指定した文字式の1つ以上の文字を、別の1つ以上の文字で置換します。
Right
SELECT Right('123456', 3)
 FROM table
文字列の右側から、指定した数の文字を返します。
Space
Space(2)
空白を挿入します。
Substring
Substring('abcdef' FROM 2)
固定文字数から元の文字列の新しい文字列を作成します。
SubstringN
Substring('abcdef' FROM 2 FOR 3)
Substringと同様に、固定文字数から元の文字列の新しい文字列を作成します。

SubstringNには、新しい文字列の長さを文字数で指定できる整数の引数が含まれます。

TrimBoth
Trim(BOTH '_' FROM '_abcdef_')
文字列から指定した先頭および末尾の文字列を削除します。
TrimLeading
Trim(LEADING '_' FROM '_abcdef')
文字列から指定した先頭の文字列を削除します。
TrimTrailing
Trim(TRAILING '_' FROM 
'abcdef_')
文字列から指定した末尾の文字列を削除します。
Upper
Upper(Customer_Name)
文字列を大文字に変換します。

システム関数

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

時系列関数

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

関数 説明
Ago
SELECT Year_ID, Ago(sales, year, 1)
現在の時間から過去の指定された期間までメジャーの集計値を計算します。たとえば、AGOを使用すると、現四半期の各月の売上および対応する1つ前の四半期の売上を生成できます。
Periodrolling
SELECT Month_ID, Periodrolling
(monthly_sales, -1, 1)
x単位の時間から始まり、現在の時刻からy単位の時間で終わる期間のメジャーの合計を計算します。たとえば、PERIODROLLINGを使用して、現在の四半期前の四半期で始まり、現在の四半期後の四半期で終わる期間の売上を計算できます。
ToDate
SELECT Year_ID, Month_ID, ToDate
(sales, year)
指定された期間の最初から現在の表示時刻までのメジャーを集計します。たとえば、この関数を使用すると、過去1年間の売上を計算できます。