Skip Navigation
Expand
レポートで使用される関数
Answer ID 7258   |   Last Review Date 03/18/2019

レポートの集合関数、文字列関数、日付関数、論理関数、および算術関数とは何ですか。

環境:  

アナリティクス  

解決策:

カスタム・レポートを作成する場合、フィルタで使用したり、出力列に表示したりするために、データの関数を定義できます。これにより、ユーザーはカスタム・レポートとビューの条件と出力の両方をカスタマイズできます。

関数は集合、文字列、日付、論理、算術、および通貨で示されます。文字列、日付、論理、および算術関数はデータベースからの単一の値を操作し、フィルタを定義する場合や出力列を定義する場合の両方に使用できます。

たとえば、count(expression)関数を使用して、データ・セット内のインシデントの数を計算できます。これは、そのデータ内のインシデントの総数を返します。集約関数は、データセットを要約するために使用し、ビューまたはレポートの出力列を定義する場合に使用できます。そのため、集約関数はデータ・セットを定義する場合に使用できません。

集約関数は値のデータセットの単一の合計を返します。集約関数は、ユーザーが特定のレコードにドリル・ダウンできる複数レベルのビューまたはレポートを定義する場合に、特に頻繁に使われます。

注意:連絡先のEメール・アドレスなどのテキスト・フィールドでは、デフォルトの文字制限は255です。インシデントのメモなどのテキスト領域では、デフォルトの文字制限は4000です。

Click the plus sign next to the appropriate heading below to expand that section for viewing.

集約関数  

avg(expr) -- レポートまたはビューに定義されたデータ・セットの括弧内に示されている式の平均値を計算します。

 count(expr) -- レポートまたはビューに定義されたデータ・セットの行またはレコードの数を返します。たとえば、i_idが100と101の2つのインシデントがある場合、式count(incidents.i_id)は2になります。

 group_concat(expr, separator[, sort column 1, ASC|DESC][, sort column 2, ASC|DESC][,...])-- データ・セット式の複数の値を単一行の区切り形式のリストに組み合せます。リストは区切り記号によって区切られ、指定されたソート列によって、順序付けされます。たとえば、式group_concat(threads.note, ',', threads.entered, ASC)は、昇順で入力された時間によって順序付けされたスレッドのメモのカンマ区切りのリストを返します。

 max(expr) -- レポートまたはビューに定義されたデータ・セットの最大の数値、アルファベット順の最後の文字列、またはデータ・セットの最後の日付を返します。

 min(expr) -- レポートまたはビューに定義されたデータ・セットの最小の数値、アルファベット順の最初の文字列、またはデータ・セットの最初の日付を返します。

 sum(expr) -- レポートまたはビューに定義されたデータ・セットの値の合計を返します。たとえば、i_idが100と101の201つのインシデントがある場合、式sum(incidents.i_id)は201になります。

 sum_distinct(expr, reference) -- テーブル内の同じタイプのすべてのレコードではなく、特定のレコード(参照)の式内の個別の値の合計を返します。たとえば、特定の営業担当者のすべての割当ての合計を計算したい場合、sum_distinct(sa_period2accts.quota, sa_period2accts.acct_id)の関数を追加できます。

 stddev(expr) -- 表示された式のデータ・セットの標準偏差を返します。たとえば、式stddev(answers.solved_count)は、アンサー・テーブルのsolved_count列のすべての値の標準偏差を返します。

 first(expr, sort column1[, sort column2][,....])-- 指定された列の順序に基づいて、データ・セット式の最初の値を返します。たとえば、式first(threads.note, threads.entered, threads.seq)は、入力された時間とスレッド・シーケンスに基づいて、データ・セット内の最初のスレッド・メモを返します。

 last(expr, sort column1[, sort column2][,....])-- 指定されたソート列の順序に基づいて、データ・セット式の最後の値を返します。たとえば、式last(threads.note, threads.entered, threads.seq)は、入力された時間とスレッド・シーケンスに基づいて、データ・セット内の最後のスレッド・メモを返します。

  文字列関数  

 concat(str1, str2) -- 入力文字列str1とstr2を単一の出力文字列に結合します。この関数には、2つの式を追加できます。たとえば、式concat('www.', 'global', '.com')は値www.global.comを返します。

 instr(str, substr) -- 指定された完全な文字列内で最初に検出された部分文字列(2 番目の式)の数値の位置を返します。たとえば、式instr('RightNow','Now')は値6を返します。

 length(str) -- 文字列の長さ(文字数で)を返します。たとえば、式length('cell phones')は値10を返します。

 lower(str) -- テキスト文字列をすべて小文字で返します。たとえば、式lower('RightNow')は値rightnowを返します。

 ltrim(str) -- 先頭の空白を除いた文字列を返します。たとえば、式ltrim(' RightNow')は値RightNowを返します。

 lpad(str1, X, str2) -- str1がX文字の長さになるまで、左側にstr2をパディングしたstr1を返します。たとえば、式lpad('Service', 10, '@')は値@@@Serviceを返します。

 rpad(str1, X, str2) -- str1がX文字の長さになるまで、右側にstr2をパディングしたstr1を返します。たとえば、式lpad('Service', 10, '@')は値Service@@@を返します。

 rtrim(str) -- 末尾の空白を除いた文字列を返します。たとえば、式rtrim('RightNow ')は値RightNowを返します。

 substr(str, start_pos ,length)またはsubstr(str, start_pos) -- start_pos (整数)で定義された文字から始まり、length (整数)で定義された文字で終わる文字列の位置を返します。長さが指示されていない場合、文字列の残りを返します。

 to_char(expr) -- 数式を文字列に変換します。

 to_number(str) -- 文字列を数値に変換します。文字列が数値でない場合、この関数は0を返します。文字列が数字と他の文字の組合せで、数字から始まる場合、この関数は最初の数値の位置のみを返します。たとえば、to_number(123ABC)は123を返します。

 upper(str) -- 文字列をすべて大文字で返します。たとえば、式upper('RightNow')は値RIGHTNOWを返します。

  日付関数  

 date_add(date, units, interval, round) -- dateと指定された時間の量を返します。ここでdateは、datetime型列または形式YYYY-MM-DDまたはYYYY-MM-DD HH:MI:SSのリテラル文字列です。追加する時間の量は、unitsとintervalで指定します。ここで、unitsは追加する間隔の数を指定する正の整数である必要があり、intervalは、SECONDS、MINUTES、HOURS、DAYS、WEEKS、MONTHS、またはYEARSを指定できます。結果を指定した間隔の開始に丸めるには、round引数を1に設定し、そうでない場合は、roundを0に設定すると、結果が丸められません。

たとえば、式date_add(2007-03-28 22:35:00, 48, HOURS, 1)は値2007-03-30 22:00:00を返します。

 date_format(date, format) -- 日付式をdatetimeデータ型から文字列に変換し、format式で指定された形式に一致するように、日付を書式変更します。日付は、datetime型列または形式YYYY-MM-DDまたはYYYY-MM-DD HH:MI:SSのリテラル文字列です。たとえば、date_format('2007-11-25 22:25:00', 'DAY, MONTH DD, YYYY, HH12:MI PM')は値「Tuesday, November 25, 2007 10:25 PM」を返します。

 date_diff(date, date) - 2つの日付間の秒数を返します。たとえば、式date_diff('2007-03-26 22:25:00', '2007-03-25 22:25:00')は値86400を返します。

注意:出力形式を変更するには、date_formatまたはtime_format関数を使用します。たとえば、time_format(date_diff('2007-03-26 22:25:00', '2007-03-25 22:25:00'), 'HH24h Mim SSs')は「24h 00m 00s」を返します。

 date_trunc(date, units) -- unitsで指定された単位に日付を切り詰めます。たとえば、expression date_trunc('2007-11-25 22:25:10', HOURS)は値「2007-11-25 22:00:00」を返します。

 sysdate() -- 現在のシステム日付を形式YYYY-MM-DD HH:MI:SSで返します。

 time_format (seconds, format) -- 秒を指定された時間形式に変換します。たとえば、式time_format(86610,'HH24 MI SS')は値24 03 30を返します。

 to_date (str, format) -- formatで指定された形式のstrに入力された値を、日付または日/時間値に変換します。たとえば、式to_date('20090215','YYYYMMDD')は、02/15/2009の値を返します。

 rel_date_diff (date2, date1, rr_id) -- (August 2011以降のリリースで使用可能。)回答要件に指定された休日と勤務時間を考慮に入れて、2つの日付間の秒数を返します。たとえば、サイトの回答要件が午前9時から午後5時の勤務時間で構成されている場合、式rel_date_diff('2011-07-26 22:25:00', '2011-07-25 10:30:00', 1)は値52200を返します。

 date_group (seconds, format) -- 指定した日付範囲に従って、レコードをグループ化し、関連付けられたレコードのない日付範囲の行を含めます。レコードのない日付範囲の行を返したくない場合は、代わりにdate_formatを使用できます。たとえば、1月と3月に作成されたインシデントがあるが、2月にはなく、列Aの式をdate_group(incidents.created,'YYYY-MM')に設定し、列Bの式をcount(*)に設定したレポートを作成した場合、レポートは、「2011-01 10, 2011-02 0, 2011-03 15」と出力します。

  論理関数

 if(expression, then result, else result) -- expressionがtrueの場合はthen resultを返し、expressionがfalseの場合はelse resultを返します。たとえば、式if(incident. custom_field=1, 'Yes', 'No')は、値が1の場合にYesを返し、値が0の場合にNoを返します。

 decode(expression, test value 1, result 1[next test value, next result] [,default]) -- expressionをtest valueと比較し、expressionがtest valueに一致する場合、resultを実行します。expressionとresultが一致しない場合、defaultが実行されます。decode関数は、テーブルのルックアップを実行できるため、コード化された値を必要とせず、test valueとして、テキスト文字列を使用できます(たとえば、テーブルのステータス列にコード値が含まれていても、式faqs.statusのtest valueとしてReviewを使用できます)。

たとえば、「色の式」フィールドでdecode関数を使用して、様々なエスカレーション・レベルのインシデントの表示色を色の式(incidents.escllevel, 0, ’default’, 1, ’green’, 2, ’yellow’, 3, ’red’)を使用して、変更することができます。

 nvl(expr1, expr2) -- 値expr1がNULLの場合、この関数は値expr2を返します。ただし、値expr1がNULLでない場合、値expr1が返されます。expr2の値は、expr1のデータ型と一致している必要があります。

  算術関数  

 bitand(X, Y) -- 2つの整数XとYのビット単位のAND演算を返します。

 ceiling(X) -- X以上の最小の整数値を返します。

 floor(X) -- X以下の最大の整数値を返します。

 power(X,Y) -- XのY乗の値を返します。たとえば、power(2,3)は8を返します。

 round(X,D) -- 値XをDの小数点以下の桁数で四捨五入して返します。たとえば、round(5.55555,2)は値5.56を返します。

 truncate(X,D) -- 値XをDの小数点以下の桁数で切り詰めて返します。たとえば、式truncate(5.55555, 2)は値5.55を返します。

  rand() -- 0から1までのランダムな数値を返します。この出力はデータのランダム・サンプリングを生成するために使用できます。たとえば、インシデントのランダム・サンプルを生成するには、rand()の式を使用した列をインシデント・レポートに追加し、その列でソートします。レポートには、検索条件を満たすインシデントの情報がランダムにソートされて表示されます。

  通貨関数  

 cvt_currency(expr, str) -- 通貨値exprを指定された通貨strに変換します。たとえば、通貨テーブルに「USD」が米ドルの略語として保存される場合、式cvt_currency(sa_opportunities.rep_value, 'USD')は、米ドルでrep_valueを返します。

 make_currency(expr, str) -- exprを指定された通貨strに変換します。たとえば、式make_currency(100.00, 'USD')は、米ドルでexprを返します。さらに、strを値dfltで置換し、式をユーザーの通貨に変換することもできます。

 to_currency(expr, str) -- xprをstr通貨の値に変換します。値はユーザーのデフォルトの通貨での金額として返されます。この関数に使用される換算率はexchange_ratesテーブルに定義された為替レートです。

たとえば、デフォルトの通貨がUSDであるユーザーの場合、to_currency(opportunities.mgr_value, `EUR')は、ユーロに変換されたmgr_valueの数値に等しいUSDでの金額を返します。

 


詳細情報は、現在ご利用のバージョンのオンライン・ドキュメンテーションにある 関数 セクションをご覧ください。 Oracle Service Cloud オンライン・ドキュメンテーション又はマニュアルにアクセスするには、Oracle Service Cloudプロダクトのドキュメントをご覧ください。

Available Languages for this Answer:

Notify Me
The page will refresh upon submission. Any pending input will be lost.