SELECTを使用したNRQL計算

New Relic Query Language(NRQL)は、SELECT文で基本的な数学関数に対応しています。足し算、引き算、掛け算、割り算を個別の属性ならびに集約関数の結果にも適用できます。

SELECTで数学演算子を利用する

NRQLで基本的な数学関数を利用するには、演算子をSELECT文内に含めます:

  • 足し算:+
  • 引き算:-
  • 掛け算:*
  • 割り算:/

以下にいくつか例を示します。

 SELECT duration-databaseDuration FROM Transaction
SELECT count(*)/uniqueCount(session) FROM PageView
SELECT average(duration-databaseDuration) FROM Transaction

STRINGまたはFLOATによる結果

数学関数に存在する文字列をNRQLがどのように処理するかを示しています。

例:

  • sum(1+STRING) = 0
  • sum(1+MIXED) = MIXEDが文字列の場合のレコードをスキップ
  • average(1+STRING) = 0
  • average(1+MIXED) = MIXEDが文字列の場合のレコードをスキップ

NULLと0は、いずれもダッシュボード上では0として表示されます。

別の数値を持った、NULL値をオーバーライドするには、次の構文を使用します:

SELECT average(purchasePrice OR 0)

これによって、NULL値を0もしくは他の指定値と置き換えます。

これは、何かがNULLもしくは0を返すかテストする際にも使用できます。(zero) OR 1は0を返します。(NULL) OR 1は1を返します。

高度な数学関数

NRQLに含まれる高度な数学関数は、複雑な計算のほか、UIでの効果的な表示を可能にするデータ処理に利用できます。

abs

abs(n)nの絶対値を返します。非負の n には nを、また負の n には正数 -nをそれぞれ返します。たとえば、abs(2) = 2、また abs(-4) = 4となります。

roundfloorceil(ing)

これらの3つの関数は、隣接する整数の1つに小数を強制します。

  • floor(n)n未満もしくは同等の近似整数を返します。
  • ceil(n)n以上もしくは同等の近似整数を返します。
  • round(n)nの近似整数をどちらの方向にも返します。
floor-round-ceil.png
floor、round、ceiling関数を適用した生データを示すサンプルグラフ。

clamp_max, clamp_min

クランプ関数は、値の上界もしくは下界を設定します。

たとえば、clamp_max(duration, 10)は持続時間を返しますが、これが10を超える場合は10を返します。

同様に、clamp_min(duration, 1)は1未満の値を一切返しません。以下のチャートは、最小値と最大値をクランプして、値を70~90の範囲内に留めた結果を示しています。

clamp.png
クランプ関数を適用した生データを示すサンプルグラフ。

pow

pow(n, m) nm乗を演算。(すなわち n * n * ... * n nm個分のコピー) ​

sqrt

sqrt(n) nの平方根を返します。すなわち、次が成立する数字になります: sqrt(n) * sqrt(n) = n

exp

引数の自然指数関数を計算します:exp(n) = pow(e, n)

ln, log2, log10, log

こうした関数は、様々な基数向けに引数の対数を計算します。

  • ln(n) は自然対数を計算します:対数(基数 e)。
  • log2(n) は、対数(基数 2)を計算します。
  • log10(n) は、対数(基数 10)を計算します。
  • log(n, b) では、対数を任意の基数 bで計算できます。
  • すべての対数は、次の恒等式を満たします:log(pow(b, n), b) = n.

すべての基数において、log(0) は未定義である点に注意してください。ゼロかもしれない何かの対数を取った場合、クエリは「値なし」を返す可能性がある点に注意してください。

その他のヘルプ

さらに支援が必要な場合は、これらのサポートと学習リソースを確認してください: