定義
配列内の数値のサンプル標準偏差を返します。
注意
曖昧さ回避
このページでは、配列内の数値のサンプル標準偏差を返す式として使用される場合の$stdDevSamp について説明します。
次の他のコンテキストでは $stdDevSamp を使用することもできます。
$stdDevSamp (accumulator)は、ドキュメントのグループ全体の値のサンプル標準偏差を計算します。$stdDevSamp (window function)$setWindowFieldsは、ウィンドウ内の値のサンプル標準偏差を計算するために ステージで使用されます。
構文
式として使用する場合、$stdDevSamp は次のいずれかの構文をとります。
{ $stdDevSamp: <expression> }
上記の構文では 、オペランドは配列として評価される単一の式です。 $stdDevSamp は 配列をトラバースし、配列の数値のサンプル標準偏差を返します。
{ $stdDevSamp: [ <expression1>, <expression2>, ... ] }
上記の構文では、各式は単一の数値に評価される必要があります。 $stdDevSamp は、それらの値のサンプル標準偏差を返します。数値以外の値は無視されます。
動作
結果の型
$stdDevSamp 入力値のサンプル標準偏差をdoubleとして返します。
Non-Numeric Values
$stdDevSamp は、数値以外の値、null 値、欠落したフィールドを無視します。すべての入力値が数値以外または欠落している場合、$stdDevSamp は null を返します。
単一の値
数値入力値が 1 つのみの場合、$stdDevSamp は null を返します。
例
testScores コレクションを作成します。
db.testScores.insertMany( [ { studentId: "2345", scores: [ 62, 81, 80, 75, 68, 72, 74, 78, 69, 77 ] }, { studentId: "2356", scores: [ 60, 83, 79, 72, 65, 71, 68, 74, 64, 76 ] }, { studentId: "2358", scores: [ 67, 82, 78, 70, 84, 73, 79, 71, 88, 75 ] }, { studentId: "2367", scores: [ 64, 72, 77, 58, 91, 66, 83, 55, 94, 61 ] }, { studentId: "2369", scores: [ 60, 53, 72, 85, 63, 88, 57, 79, 66, 74 ] } ] )
次のパイプラインでは、$stdDevSamp を使用して各生徒のテスト スコアのサンプル標準偏差を計算します。
db.testScores.aggregate( [ { $project: { _id: 0, studentId: 1, scoreStdDev: { $stdDevSamp: "$scores" } } } ] )
前述のパイプラインでは、$project と$stdDevSamp は、各生徒の 配列のサンプル標準偏差を計算し、それをscores scoreStdDevとして返します。