メインコンテンツまでスキップ
waffle.svg
Domo Knowledge Base - 日本人

Beast Mode関数リファレンスガイド

Version 10

はじめに

このリファレンスガイドを使って、Beast Modeでサポートされている関数について学ぶことができます。

サポートされている機能

以下のどのような関数も計算で使用することができます。「Beast Mode計算例」で多くの関数の例を参照できます。

集計関数

関数名

説明

APPROXIMATE COUNT (DISTINCT)

列内のユニーク値のおおよその数を返します。

APPROXIMATE_COUNT_DISTINCT(`Customers`)

AVG

列内の各系列の平均値を返します。

AVG(`Operating Budget`)

CEILING

列内の各系列の最高値を返します。

この関数は、CEILINGは四捨五入するのに対し、MAXでは四捨五入しないという点で、MAX関数とは異なります。

CEILING(`Operating Budget`)

COUNT

列内の行の値の数を返します。

COUNT(`Customers`)

COUNT (DISTINCT)

列内のユニーク値の数を返します。

COUNT(DISTINCT `Customers`)

FLOOR

数値列の各系列の最低値を返します。

この関数は、FLOORが四捨五入されMINが四捨五入されないという点で、MIN関数とは異なります。

FLOOR(`Operating Budget`)

MAX

数値列内の各系列の最高値を返します。

この関数は、CEILINGは四捨五入するのに対し、MAXはしないという点で、CEILING関数とは異なります。

MAX(`Operating Budget`)

MIN

数値列の各系列の最低値を返します。

この関数は、FLOORは四捨五入するのに対して、MINはしないという点で、FLOOR関数とは異なります。

MIN(`Operating Budget`)

STDDEV_POP

数値列の各系列の母標準偏差を返します。

STDDEV_POP(`Values`)

SUM

数値列の各系列の合計値を返します。

SUM(`Values`)

SUM (DISTINCT)

数値列内のユニーク値の合計値を返します。

SUM(DISTINCT `Values`)

VAR_POP

数値列の各系列の母標準分散を返します。

VAR_POP(`Values`)

まとめ数字に集計関数を使用する方法については、「まとめ数字に計算を適用する」を参照してください。

数学関数

関数名

説明

ABS

数値列内のすべての値の絶対値を返します。

つまり、どのようなマイナス数値も正になり、正の数値はそのままです。これは、正の値か負の値かを考慮せずに集計値を知りたい場合に役立ちます。

ABS(`Operating Budget`)

MOD

指定した数値で割った数値列の各値(被除数)の余りを返します。

MOD(`Values`,2)

POWER

指定の数値を乗じた数値列内の各値を返します。列に複数の系列が含まれている場合、各系列に対して数値が足されます。

POWER(`Values`,2)

RAND

0から1の間の乱数値を返します。

RAND(`Values`)

ROUND

指定された小数位で四捨五入された数値列内の値を返します。

関数に小数値を含めていない場合、返される値は、整数の近似値となります。

ROUND(`Values`,1)

論理関数

関数名

説明

CASE

一定の基準を満たすとデータの値が置き換えられるような論理ステートメントを開始するのに使用します(when...thenやwhen...then, elseなど)。これらのステートメントは以下のフォーマットを使用します:

CASE `Value` when x then 'resultx' else 'resulty' End

または

CASE when `Value`=x then 'resultx' else 'resulty' End

つまり、「Value」列内のデータがxのとき、値resultxを返します。それ以外の場合は、値resultyを返します(返された数値はシングルクォートを使った文字列か単一の数になります)。

複数の条件付きステートメントには、次のフォーマットを使用します:

CASE when `Value`=x then 1 when `Value`=y then 2 end

無効ではありませんが、次のフォーマットは非効率的なので使用しないようにします:

CASE when `Value`=x then 1 else CASE when `Value`=y then 2 end end

IN演算子

CASE when節では、IN演算子を使用すると評価する値を複数指定できます。

`column_name` IN (value1,value2,...)


CASE when `State` in ('NY', 'TX') then 0 else 1 end

LIKE演算子

CASE when節では、LIKE演算子を使って列内の特定パターンを検索できます。

`column_name` LIKE pattern

CASE when `State` like '%TX%' or `State` like '%NY' then 0 else 1 end

ワイルドカードをLIKE演算子とともに使用できます:

  • %は、ゼロ(0)を含む、あらゆる文字数に一致します。
    like '%TX%'

  • _は、正確に1文字に一致します。
    like '_hn%'

LIKE演算子の値は、WHENステートメントの順番で一致します。例えば、データ内の値が1番目と4番目のLIKE演算子と一致する場合、その値は最初の演算に適用されます。 

CASE when `Amount`=1 then 10 else 0 End

CASE `Gender`
when 'M' then 'Male'
when 'F' then 'Female'
end​

CASE when `Pennies` >= 600 then 'Large'
when `Pennies` <= 300 then 'Small'
else `Pennies`
end​

 

IFNULL

null値を置き換える値を指定する場合に論理ステートメントで使用されます。

IFNULL(`Values`,0)

NULLIF

最初の列の値と2番目の列の値が等しい場合、nullを返します。それ以外の場合は、最初の列の値を返します。

NULLIF(`Value 1`,`Value 2`)

トレーニングビデオ - Beast Mode CASEステートメント

 

 

トレーニングビデオ - CASEステートメントの分析

 

注記:この製品トレーニングビデオは、Domoのお客様とクライアント様のみを対象としています。

 

文字列関数

関数

説明

CONCAT

2つ以上の文字列の列の文字列を結合します。

CONCAT(`First Name`,' ',`Last Name`)

INSTR

特定の列内で指定した文字列が最初に出現する位置を、名前の最初の文字から数えて返します。

右側の例では、この計算は列内の各文字列において、「e」が最初に出現する位置を返します。  

INSTR(`Group`,'e')

LEFT

左側から始めて、特定の列内の各文字列から指定された数の文字を返します。 

LEFT(`Group`,3)

LENGTH

特定の列内にある各文字列の文字数を返します。 

LENGTH(`Group`)

LOWER

1つ以上の文字列の列の文字列を小文字に変換します。

LOWER(`Product Type`)

REPLACE

特定の列内の指定文字列を、すべて別の指定文字列に置き換えます。 

REPLACE(`Department`,'Human Resnources','Human Resources')

RIGHT

右側から始めて、指定された数の文字を特定の列内から返します。 

RIGHT(`Group`,3)

SUBSTRING

文字列の列内の値から指定した文字数を抽出し返します。

開始する位置と文字数を指定することで、返す文字を指定します。例えば、位置を1、文字数を3と指定すると、列内の値の1番目、2番目、3番目の文字を返します。

SUBSTRING(`Employee Name`,1,3)

TRIM

文字列の列内のすべての値の先頭にあるスペースと末尾にあるスペースを削除します。

TRIM(`Employee Name`)

UPPER

1つ以上の文字列の列の文字列を大文字に変換します。

UPPER(`Customers`)

日付と時刻設定関数

関数

説明

ADDDATE

日付列の日付の値に(間隔として)日付または日時の値を追加します。

日付列の日付の値に追加する日付や日時の数値を指定することができます。これは、列や間隔、数式、単位を指定することで行います。例えばADDDATE(`datecolumn`, interval expr unit)の場合、datecolumnが日付の値を含む列であり、exprが追加する日付または日時の値を含む引数で、unitが対応する日付または日時の単位の種類の文字列です。

「-」 を数式の冒頭に入力し、この数値を引くことができます。単位の数値(秒、分、時、日、週、月、四半期、年など)を指定できます(「間隔」のキーワードと、単位の種類の値には大文字と小文字の区別はありません)。詳細は、「Beast Modeでの単位の種類の値」を参照してください。

例えば、1月4日に12日を追加すると、1月16日を返します。

DATE_ADDと同じです。

ADDDATE(`DateCol`, interval 12 day)

ADDTIME

時刻列内の値すべてに指定の秒数を追加します。例えば、8:05に15秒を追加すると8:20を返します。

ADDTIME(`Time`,25)

CURDATE

現在の日付を返します。

この関数では列の名前は指定されていません。

CURRENT_DATEと同じです。

CURDATE()

CURTIME

現在の時刻を返します。

この関数では列の名前は指定されていません。

CURRENT_TIMEと同じです。

CURTIME()

CURRENT_DATE

現在の日付を返します。

この関数では列の名前は指定されていません。

CURDATEと同じです。

CURRENT_DATE()

CURRENT_TIME

現在の時刻を返します。

この関数では列の名前は指定されていません。

CURTIMEと同じです。

CURRENT_TIME()

CURRENT_TIMESTAMP

現在の日付と時刻の値をYYYY-MM-DD HH:MM:SS形式で返します。

この関数では列の名前は指定されていません。

NOWと同じです。

CURRENT_TIMESTAMP()

DATE

日時の値から日付を抽出し、返します。

DATE(`DateCol`)

DATEDIFF

日時の値から2つの日付の間の日数を返します。

DATEDIFF(CURRENT_DATE(), `lastmoddate`)

DATE_ADD

日付列の日付の値に(間隔として)日付または日時の値を追加します。

日付列の日付の値に追加する日付や日時の数値を指定することができます。これは、列や間隔、数式、単位を指定することで行います。例えばDATE_ADD(`datecolumn`, interval expr unit)の場合、datecolumnが日付の値を含む列であり、exprが追加する日付または日時の値を含む引数で、unitが対応する日付または日時の単位の種類の文字列です。

「-」 を数式の冒頭に入力し、この数値を引くことができます。単位の数値(秒、分、時、日、週、月、四半期、年など)を指定できます(「間隔」のキーワードと、単位の種類の値には大文字と小文字の区別はありません)。詳細は、「Beast Modeでの単位の種類の値」を参照してください。

例えば、1月4日に12日を追加すると、1月16日を返します。

ADDDATEと同じです。

DATE_ADD(`DateCol`, interval 12 day)

DATE_FORMAT

日付/時刻列の日付を指定の形式に設定します。

注記:Beast Modeでは、SQLと同じ日付と時刻の形式を使用します。

日付列または時刻列に使用する書式を指定することができます。これは、列や日付または時刻の文字列を指定することで行います。例えばDATE_FORMAT(`datecolumn`,'format')の場合、datecolumnは日付の値を含む列であり、formatは日付の値の書式に使用される指定子を含む文字列です。

「%」は形式指定子の文字の前に使用する必要があります。

例えば、DATE_FORMAT(`MyDate`,'%Y-%m-%d %h:%i %p')を使用すると、MyDateの日付列の日付は「2013-04-17 10:10 AM」の形式になります。

指定文字列の詳細に関しては、「Beast Modeでの日付の形式指定文字列」を参照してください。

TIME_FORMATと同じです。

DATE_FORMAT(`DateCol`,'%y')
DATE_FORMAT(`DateCol`,'%m/%d')
DATE_FORMAT(NOW(),'%d %b %Y %T')
DATE_FORMAT(STR_TO_DATE(`DateCol`, '%m,%d,%Y'), '%m/%d/%Y')
ADDDATE(DATE_FORMAT(`DateCol`, '%Y-%m-%d'), interval 12 day)
PERIOD_DIFF(DATE_FORMAT(CURDATE(), '%Y%m'), DATE_FORMAT(`DateCol`, '%Y%m'))

DATE_SUB

日付列内の日付の値から(間隔として)日付または日時の値を引きます。

日付列の日付の値に追加する日付や日時の数値を指定することができます。これは、列や間隔、数式、単位を指定することで行います。例えばDATE_SUB(`datecolumn`, interval expr unit)の場合、datecolumnが日付の値を含む列であり、exprが引く日付または日時の値を含む引数で、unitが対応する日付または日時の単位の種類の文字列です。

「-」を数式の冒頭に入れてこの数値を足すことができます。単位の数値(秒、分、時、日、週、月、四半期、年など)を指定できます(「間隔」のキーワードと、単位の種類の値には大文字と小文字の区別はありません)。詳細は、「Beast Modeでの単位の種類の値」を参照してください。

例えば、1月24日から12日を引くと1月12日を返します。

SUBDATEと同じです。

DATE_SUB(`DateCol`, interval 12 day)

DAY

日付/時刻列のすべての値の月の日付を数値で返します。

DAYOFMONTHと同じです。

DAY(`DateCol`)

DAYNAME

日付/時刻列のすべての値の曜日名を返します。

DAYNAME(`DateCol`)

DAYOFMONTH

日付/時刻列のすべての値の月の日付を数値で返します。

DAYと同じです。

DAYOFMONTH(`DateCol`)

DAYOFWEEK

日付/時刻列のすべての値の曜日を数値で返します(例:「月曜日」の場合は「2」)。

DAYOFWEEK(`DateCol`)

DAYOFYEAR

日付/時刻列のすべての値を一年の何日目であるかの数値で返します(例:1年の226日目は「226」です)。

DAYOFYEAR(`DateCol`)

FROM_DAYS

日付の数値を日付に変換します。

FROM_DAYS(`DateCol`)

FROM_UNIXTIME

指定された形式を使ってUNIXの日付/時刻列からUNIX日時の値を返します。

指定文字列の詳細に関しては、「Beast Modeでの日付の形式指定文字列」を参照してください。

FROM_UNIXTIME(`UnixDateCol`,'%Y %d %m %h:%i:%s %x')

HOUR

日付/時刻列内のすべての値の正時を返します(例:時刻が「3:36」の場合、「3」を返します)。

HOUR(`Time`)

LAST_DAY

日付/時刻列の各月の値を集計し、各月の最終日に集計した値を返します。

例えば、1月の日付/時刻の列に 「15」、「16」、「17」があると、その最後の日付と3つの数字を足した48の数値のみが表示されます。

LAST_DAY(`DateCol`)

MINUTE

時刻列内の各時刻(分)の値を返します。

列に特定の時刻(分)の例が1つ以上存在する場合は、該当する時刻(分)の値が集計されます。

MINUTE(`Time`)

MONTH

日付/時刻列内のすべての値の月を数値で返します(例:9月の場合「9」)。

MONTH(`DateCol`)

MONTHNAME

日付/時刻列内のすべての値の月の名前を返します(例:「9」ではなく「9月」)。

MONTHNAME(`DateCol`)

NOW

現在の日付と時刻の値をYYYY-MM-DD HH:MM:SS形式で返します。

この関数では列の名前は指定されていません。

CURRENT_TIMESTAMPと同じです。

NOW()

PERIOD_ADD

日付列内の値に指定の月数を追加します。これが機能するには、日付の値はYYYYMM形式での月になっている必要があります。

PERIOD_ADD(`Month`,6)

PERIOD_DIFF

2つの日付列内の月の間の月数を返します。

これが機能するには、日付の値はYYYYMM形式での月になっている必要があります。例えば、1つの列に200803の日付値があり、他の列に200809の数値がある場合、この関数は6を返します。

PERIOD_DIFF(201309,201301)
PERIOD_DIFF(`Month 1`, `Month 2`)
PERIOD_DIFF(DATE_FORMAT(CURDATE(), '%Y%m'), DATE_FORMAT(`DateCol`, '%Y%m'))

QUARTER

日付の値データを四半期に集計します。

QUARTER(`DateCol`)

SECOND

時刻列の各時刻(秒)の値を返します。列内に特定の時刻(秒)の例が1つ以上存在する場合は、該当する時刻(秒)の値が集計されます。

SECOND(`Time`)

SEC_TO_TIME

秒を時間:分:秒に変換します。例えば、3489秒は00:58:09に変換されます。

SEC_TO_TIME(`Seconds`)

STR_TO_DATE

1つ以上の文字列の列の文字列(Domoが日付として認識しない文字列)を日時の値に変換します。列と現在列で使用されている日付の形式を指定してください。

デフォルトとして、日時の数値は%m-%d-%Yの出力形式を返します。STR_TO_DATE計算を、使用したい日付形式の指定子の文字を指定したDATE_FORMAT計算で囲むことにより、出力形式を変更することができます。

指定文字列の詳細に関しては、「Beast Modeでの日付の形式指定文字列」を参照してください。

STR_TO_DATE(`DateCol`,'%m,%d,%Y')
DATE_FORMAT(STR_TO_DATE(`DateCol`, '%m,%d,%Y'), '%m/%d/%Y')

SUBDATE

日付列内の日付の値から(間隔として)日付または日時の値を引きます。

日付列の日付の値から引く日付や日時の数値を指定することができます。これは、列や間隔、数式、単位を指定することで行います。例えばSUBDATE(`datecolumn`, interval expr unit)の場合、datecolumnが日付の値を含む列であり、exprが引く日付または日時の値を含む引数で、unitが対応する日付または日時の単位の種類の文字列です。

「-」を数式の冒頭に入れてこの数値を足すことができます。単位の数値(秒、分、時、日、週、月、四半期、年など)を指定できます(「間隔」のキーワードと、単位の種類の値には大文字と小文字の区別はありません)。詳細は、「Beast Modeでの単位の種類の値」を参照してください。

例えば、1月24日から12日を引くと1月12日を返します。DATE_SUBと同じです。

SUBDATE(`DateCol`, interval 12 day)

SUBTIME

時刻列内の値すべてから指定の秒数を引きます。

例えば、8:05:45から30秒を引くと、8:05:15が返されます。

SUBTIME(`Time`,15)

SYSDATE

現在の日付と時刻をYYYY-MM-DD HH:MM:SS形式で返します(例:2014-04-03T19:25:29)。

この関数では列の名前は指定されていません。

CURRENT_DATECURRENT_TIMEと同じです。

SYSDATE()

TIME

日時の値から時間を抽出します。

TIME(`DateCol`)

TIMEDIFF

2つの日付/時刻列内の値の差を時間の値として返します。

TIMEDIFF(`Time 1`,`Time 2`)

TIMESTAMP

日付列の値を日時の値として返します。

TIMESTAMP(`DateCol`)

TIME_FORMAT

日時列の時間を指定の形式に設定します。

注記:Beast Modeでは、SQLと同じ日付と時刻の形式を使用します。 

列や時間の文字列を指定することにより、時間列の時間値に使用する形式を指定することができます。TIME_FORMAT(`datetimecolumn`,'format')の場合、datetimecolumnは時間の値を含む列であり、formatが時間値の書式設定に使用される指定子を含む文字列です。

注記:DATE_FORMATで使用される形式の指定子はTIME_FORMATと併用できますが、時、分、秒、マイクロ秒以外の指定子は、NULL値または0を生成します。  

「%」は形式指定子の文字の前に使用する必要があります。

例えば、TIME_FORMAT(`Date`,'%h:%i:%s')を使うと、変換済みの時間列の日付はこの形式になります。12:20:12

指定文字列の詳細に関しては、「Beast Modeで使用できる日付の形式指定文字列とは」を参照してください。

DATE_FORMATと同じです。

TIME_FORMAT(`Date`,'%h:%i:%s')
TIME_FORMAT(NOW(),'%h:%i:%s')

TIME_TO_SEC

日付/時刻列のすべての値の経過時間(秒)を返します。

TIME_TO_SEC(`DateCol`)

TO_DAYS

日付/時刻列のすべての値の0年からの日数を返します。例えば、日付「01-06-2010」は、 0年1月1日からこの日付までに734,143日間経過しているため、「734143」が返されます。

TO_DAYS(`DateCol`)

UNIX_TIMESTAMP 日付/時刻列のすべての値のUNIXタイムスタンプを返します。 UNIX_TIMESTAMP(`DateCol`)
WEEK

指定された日付または日時列の各値の週の番号を返します。

構文:WEEK(`dateCol`, mode)

日~土の週フレームの場合、モード11を使用します(例:WEEK(`dateCol`, 11))。

月~日の週フレームの場合、モード22を使用します(例:WEEK(`dateCol`, 22))。

WEEK(`DateCol`,22)

YEAR

日付/時刻列の値すべての年を返します。

YEAR(`DateCol`)

YEARWEEK

指定された日付または日時列の各値の週の番号を、「YYYYWW」の形式で返します。例えば、2020年の第5週の日付であれば、「202005」が返されます。

構文:YEARWEEK(`dateCol`, mode)

日~土の週フレームの場合、モード11を使用します(例:YEARWEEK(`dateCol`, 11))。 

月~日の週フレームの場合、モード22を使用します(例:YEARWEEK(`dateCol`, 22))。

YEARWEEK(`DateCol`,11)

サポートされていない機能

以下の関数は、サポートが終了しています:SQRTCONVERT_TZMICROSECOND