NRQLは、SELECT
句内で基本および高度な数学演算子の使用をサポートします。個々の属性および集計関数の結果の両方に数学計算を適用できます。
で基本的な数学演算子を利用する SELECT
NRQLで基本的な数学関数を利用するには、演算子をSELECT
句内に含めます。
- 足し算:
+
- 引き算:
-
- 掛け算:
*
- 割り算:
/
以下にいくつか例を示します。
SELECT duration-databaseDuration FROM Transaction
SELECT count(*)/uniqueCount(session) FROM PageView
SELECT average(duration-databaseDuration) FROM Transaction
で高度な数学演算子を利用する SELECT
NRQLには、複雑な計算に使用できる高度な数学機能もあります。これは、データを処理してUIでより効果的に表示する場合やクエリ結果の計算を1つのステップで実行したい場合に便利です。
abs
abs(n)
nの絶対値を返します。非負のnにはnを、また負のnには正数-nをそれぞれ返します。たとえば、abs(2) = 2
とabs(-4) = 4
。
clamp_max
、 clamp_min
クランプ関数は、値の上界もしくは下界を設定します。たとえば、 clamp_max(duration, 10)
は持続時間を返しますが、これが10を超える場合は10を返します。同様に、clamp_min(duration, 1)
は1未満の値を一切返しません。
以下のクエリとチャートの例は、最小値と最大値をクランプして、値を96~98の範囲内に留めた結果を示しています。
FROM SystemSample SELECT average(cpuPercent) AS 'raw',clamp_min(clamp_max(average(cpuPercent), 98), 96) AS 'clamped'TIMESERIES
クランプ関数を適用した生データを示すサンプルグラフ。
exp
引数exp(n) = pow(e, n)
の自然指数関数を計算します。
対数関数:ln
、log
、log2
、 log10
こうした関数は、様々な基数向けに引数の対数を計算します。
ln(n)
は、自然対数:対数ベースeを計算します。log2(n)
は、対数(基数 2)を計算します。log10(n)
は、対数(基数 10)を計算します。log(n, b)
では、対数を任意の基数bで計算できます。- すべての対数は、恒等式
log(pow(b, n), b) = n
を満たします。
すべての基数において、log(0)
は未定義である点に注意してください。ゼロかもしれない何かの対数を取った場合、クエリはno value
を返す可能性がある点に注意してください。
pow
pow(n, m)
nのm乗を計算します。たとえば、nのm個分のコピーを含むn * n * ... * n
。
Round関数:round
、floor
、 ceil
これらの3つの関数は、隣接する整数の1つに小数を強制します。
floor(n)
はn未満もしくは同等の近似整数を返します。ceil(n)
(「ceiling」の略)はn以上もしくは同等の近似整数を返します。round(n)
はnの近似整数をどちらの方向にも返します。
floor、round、ceiling関数を適用した生データを示すサンプルグラフ。
sqrt
sqrt(n)
nの平方根を返します。すなわち、sqrt(n) * sqrt(n) = n
のような数値になります
STRINGまたはFLOATによる結果
数学関数に存在する文字列をNRQLがどのように処理するかを示しています。
例:
sum(1+STRING)
= 0sum(1+MIXED)
=MIXED
が文字列の場合のレコードをスキップaverage(1+STRING)
= 0average(1+MIXED)
=MIXED
が文字列の場合のレコードをスキップ
NULLと0は、いずれもダッシュボード上では0として表示されます。 別の数値を持った、NULL値をオーバーライドするには、次の構文を使用します:
SELECT average(purchasePrice OR 0)
これによって、NULL値を0もしくは他の指定値と置き換えます。
ヒント
これは、何かがNULLもしくは0を返す際にも使用できます。(zero) OR 1
は0を返し、 (NULL) OR 1
1を返します。