メインコンテンツへスキップ

はじめに

このリファレンスガイドでは、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)

動画 - CASEステートメントの概要
このページのトップへ

文字列関数

関数

説明

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)

このページのトップへ

日付と時刻設定関数

注記: Beast Modeでは、 WEEKDAY 関数はサポートされていません。 WEEKDAY を使用する場合は、 DAYOFWEEK の機能に置き換えられます。

関数

説明

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,15)

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関数は24時間に制限されています。値が24時間を超えると、オーバーフローし、0時間にループバックされます。

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,30)

SYSDATE

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

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

CURRENT_DATE CURRENT_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)

このページのトップへ

計算をまとめ数字に適用する

DataSet内でBeast Mode計算が行を集計する場合、カードのまとめ数字に使用できます。以下のいずれかの関数を使用して作成された計算は、まとめ数字に適用できます。
  • 
    COUNT
    
    COUNT (DISTINCT)
    
    MAX
    
    MIN
    
    SUM
    
    SUM (DISTINCT)
    
    STDDEV_POP、VAR_POP
    
これらの関数のいずれかを追加すると、このカードのまとめ数字で使用される利用可能な列のリストにBeast Mode計算が自動的に追加されます。
注記: Beast Mode計算がまとめ数字として機能するには、何らかの手段で集計されているか(例: SUM() 関数)または、関数内で数値に行われた演算の結果である必要があります(例: SUM() 関数)。例えば、 'Customers' はまとめ数字として使えませんが、 SUM('Customers') はまとめ数字として使うことができます。
まとめ数字の詳細については、「 チャートのまとめ数字を設定する 」を参照してください。

サポートされていない関数

SQRTCONVERT_TZMICROSECONDWEEKDAY の各関数は、サポートが終了しています。 このページのトップへ 日本語