レポートを作成するときに、if()と呼ばれる関数があります。これは何であり、どのように使用しますか。また、使用できるパラメータは何ですか。
環境:
アナリティクス
Oracle B2C Service
解決策:
アナリティクスのif()関数を使用すると、データを比較し、その結果に従ってレポート列に様々なデータを表示できます。この関数は、3つのパラメータをとります。1つ目のパラメータは条件、2つ目のパラメータは条件を満たした場合に表示される内容、3つ目のパラメータは条件を満たさない場合に表示される内容です。2つ目と3つ目のパラメータのデータ・タイプは、同じ(両方とも日付、両方ともテキストなど)にする必要があります。
たとえば、次の関数をレポートの列として含めると、
if(incidents.status_id='SOLVED', incidents.closed, incidents.updated)
現在の行にあるインシデントのステータスが解決済であるかどうかが特定されます。解決済の場合は、インシデントをクローズした日付が表示されます。そうでない場合は、インシデントが最後に更新された日付が表示されます。
演算子 |
定義 |
例 |
例の説明 |
---|---|---|---|
= |
2つの値がまったく同じです。 |
if(incidents.status_id='SOLVED', incidents.closed, incidents.updated) |
インシデントのステータスが解決済の場合は、インシデントがクローズした日付が表示されます。そうでない場合は、インシデントが最後に更新された時刻が表示されます。 |
!=または<> |
2つの値がまったく同じではありません。 |
if(incidents.assgn_group_id != 'SALES', incidents.assgn_acct_id, contacts.sales_acct_id) |
インシデント割当グループがセールスでない場合は、インシデントに割り当てられたアカウントが表示されます。そうでない場合は、連絡先に割り当てられたセールス・アカウントが表示されます。 |
> |
左辺の値が右辺の値よりも大きいです。 |
if(count(distinct incidents.i_id) > 5, 'more than five incidents', 'five or less incidents') |
この行で個別のインシデントIDの数が5よりも大きくなると、「more than five incidents」と表示されます。そうでない場合は、「five or less incidents」と表示されます。 |
< |
左辺の値が右辺の値よりも小さいです。 |
if(stats.assists < stats.email_assists, stats.email_assists - stats.assists, stats.assists -stats.email_assists) |
Webインシデントの数がEメール・インシデントの数よりも小さい場合は、Eメール・インシデントの数からWebインシデントの数を引いた数が表示されます。そうでない場合は、Webインシデントの数からEメール・インシデントの数を引いた数が表示されます。 |
>= |
左辺の値が右辺の値以上です。 |
if((date_add(answers.expires, 2, WEEKS, 0)) >= sysdate(), 'Answer expires soon', 'Answer does not expire soon') |
アンサーの有効期限日に2週間を加えたものが現在の時刻より後である場合は、「Answer expires soon」と表示されます。そうでない場合は、「Answer does not expire soon」と表示されます。 |
<= |
左辺の値が右辺の値以下です。 |
if(opportunities.rep_value <= opportunities.cos , 'Do Not Proceed', 'Proceed') |
案件の担当者の成約予測額がセールス費用以下である場合は、「Do Not Proceed」と表示されます。そうでない場合は、「Proceed」と表示されます。 |
BETWEEN |
左辺の値が右辺の2つの値の中間です。 |
if(incidents.updated BETWEEN '2009-11-26 00:00:00' AND '2009-12-01 00:00:00', 'Thanksgiving Update', 'Normal Update') |
11月26日の深夜から12月21日の深夜までの間でインシデントが最後に更新された場合は、「Thanksgiving Update」と表示されます。そうでない場合は、「Normal Update」と表示されます。 |
LIKE |
左辺の値に、ワイルドカード文字「%」で区切られた右辺の値が含まれます。 |
if(contacts.email LIKE '%rightnow.com', 'Internal Contact', orgs.name) |
連絡先のEメール・アドレスが「rightnow.com」で終わる場合は、「Internal Contact」と表示されます。そうでない場合は、組織の名前が表示されます。 |
NOT LIKE |
左辺の値には、ワイルドカード文字「%」で区切られた右辺の値が含まれません。 |
if(incidents.subject NOT LIKE '%darn%', incidents.subject, 'CENSORED') |
インシデントの件名に「darn」が含まれていない場合は、インシデントの件名が表示されます。そうでない場合は、「CENSORED」と表示されます。 |
IS NULL |
フィールドに格納されている値が存在しません。 |
if(incidents.assgn_acct_id IS NULL, incidents.assgn_group_id, incidents.assgn_acct_id) |
インシデントに割り当てられたアカウントが存在しない場合は、インシデントに割り当てられたグループが表示されます。それ以外の場合は、アカウントが表示されます。 |
IS NOT NULL |
フィールドに格納されている値が存在します。 |
if(incidents.closed IS NOT NULL, incidents.closed, incidents.created) |
インシデントのクローズ日のフィールドに値が格納されている場合は、インシデントがクローズした日付が表示されます。そうでない場合は、作成された日付が表示されます。 |
IN |
左辺の値が右辺の値のいずれかに一致します。 |
if(incidents.status_id IN ('WAITING', 'SOLVED'), 'No Update Required','Update Required') |
インシデントのステータスが待機中または解決済である場合は、「No Update Required」と表示されます。そうでない場合は、「Update Required」と表示されます。 |