• ログイン今すぐ開始

SELECTを使用したNRQL計算

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) = 2abs(-4) = 4

clamp_maxclamp_min

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

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

同様に、clamp_min(duration, 1)は1未満の値を一切返しません。

以下のチャートは、最小値と最大値をクランプして、値を70~90の範囲内に留めた結果を示しています。

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

exp

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

対数関数:lnloglog2log10

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

  • 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) nm乗を計算します。(すなわち、nm個分のコピーを含むn * n * ... * n

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

Round関数:roundfloorceil

これらの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がどのように処理するかを示しています。

pow(n, m) nm乗を計算します。(たとえば、nm個分のコピーを含むn * n * ... * n

例:

  • 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を返します。

Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.