トピック:
集計関数は、複数の値に対して操作を実行しサマリー結果を作成します。
関数 | 例 | 説明 |
---|---|---|
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
のデータを操作します。
変換関数は、ある形式から別の形式に値を変換します。
関数 | 例 | 説明 |
---|---|---|
Cast |
Cast(hiredate AS CHAR(40)) FROM employee |
式またはnullリテラルのデータ型を別のデータ型に変更します。たとえば、customer_name (CharまたはVarcharのデータ型)またはbirthdate(日時リテラル)をキャストできます。
日付データ型に変更する場合は、 |
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) |
この関数では、次のように値が返されます。
|
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年間の売上を計算できます。 |