Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
$ std DevSamp
Neu ab Version 8.0.1.
Der $stdDevSamp Operator in Amazon DocumentDB berechnet die Standardabweichung der Stichprobe numerischer Werte. Als Akkumulator berechnet er in der $group Phase einer Aggregationspipeline die Standardabweichung der Stichprobe für Dokumente innerhalb einer Gruppe. Als Ausdruck berechnet er die Standardabweichung der Stichprobe einer Reihe von Zahlen. N-1 Als Divisor wird die Standardabweichung der Stichprobe verwendet (Bessel-Korrektur). Non-numeric Werte werden ignoriert. Wenn es weniger als zwei numerische Werte gibt, wird zurückgegebennull.
Parameter
-
expression: Ein Ausdruck, der in einen numerischen Wert oder ein Array numerischer Werte aufgelöst wird.
Beispiel (MongoDB Shell)
Das folgende Beispiel zeigt, wie der $stdDevSamp Operator verwendet wird, um die Stichprobenstandardabweichung der Ergebnisse pro Proband zu berechnen.
Erstellen Sie Beispieldokumente
db.scores.insertMany([ { subject: "math", score: 80 }, { subject: "math", score: 90 }, { subject: "math", score: 85 }, { subject: "math", score: 95 }, { subject: "science", score: 70 }, { subject: "science", score: 75 }, { subject: "science", score: 80 }, { subject: "science", score: 85 } ]);
Beispiel für eine Abfrage
db.scores.aggregate([ { $group: { _id: "$subject", stdDev: { $stdDevSamp: "$score" } }} ]);
Ausgabe
[
{ "_id": "math", "stdDev": 6.454972243679028 },
{ "_id": "science", "stdDev": 6.454972243679028 }
]
Beispiel für die Verwendung von Ausdrücken (MongoDB Shell)
Der $stdDevSamp Operator kann auch als Ausdruck innerhalb einer $project Stufe verwendet werden, um die Standardabweichung der Stichprobe eines Array-Feldes zu berechnen.
Erstellen Sie Beispieldokumente
db.experiments.insertMany([ { _id: 1, measurements: [10, 12, 14, 16, 18] }, { _id: 2, measurements: [5, 5, 5, 5, 5] }, { _id: 3, measurements: [2, 4, 6, 8, 10] } ]);
Beispiel für eine Abfrage
db.experiments.aggregate([ { $project: { stdDev: { $stdDevSamp: "$measurements" } }} ]);
Ausgabe
[
{ "_id": 1, "stdDev": 3.1622776601683795 },
{ "_id": 2, "stdDev": 0 },
{ "_id": 3, "stdDev": 3.1622776601683795 }
]
Beispiel für die Verwendung von Fensteroperatoren (MongoDB Shell)
Neu ab Version 8.0.2.
Der $stdDevSamp Operator kann auch als Fensterbediener auf der $setWindowFields Bühne verwendet werden. In diesem Zusammenhang gibt es die Standardabweichung der Stichprobe des angegebenen Ausdrucks für die Dokumente in jedem Fenster zurück. Sie geben den Operator unter dem output Feld an und definieren optional die Fenstergrenzen mit einem window Dokument.
Erstellen Sie Beispieldokumente
db.sensorReadings.insertMany([ { _id: 1, sensor: "A", time: 1, value: 2 }, { _id: 2, sensor: "A", time: 2, value: 4 }, { _id: 3, sensor: "A", time: 3, value: 6 }, { _id: 4, sensor: "B", time: 1, value: 10 }, { _id: 5, sensor: "B", time: 2, value: 12 } ]);
Beispiel für eine Abfrage
Das folgende Beispiel partitioniert die Dokumente nachsensor, sortiert jede Partition nach time und gibt die Standardabweichung der laufenden Stichprobe value vom Anfang der Partition bis zum aktuellen Dokument zurück.
db.sensorReadings.aggregate([ { $setWindowFields: { partitionBy: "$sensor", sortBy: { time: 1 }, output: { runningStdDev: { $stdDevSamp: "$value", window: { documents: ["unbounded", "current"] } } } } } ]);
Ausgabe
[
{ "_id": 1, "sensor": "A", "time": 1, "value": 2, "runningStdDev": null },
{ "_id": 2, "sensor": "A", "time": 2, "value": 4, "runningStdDev": 1.4142135623730951 },
{ "_id": 3, "sensor": "A", "time": 3, "value": 6, "runningStdDev": 2 },
{ "_id": 4, "sensor": "B", "time": 1, "value": 10, "runningStdDev": null },
{ "_id": 5, "sensor": "B", "time": 2, "value": 12, "runningStdDev": 1.4142135623730951 }
]
Jedes Dokument wird um die Standardabweichung der Stichprobe value innerhalb seiner Partition bis einschließlich des aktuellen Dokuments erweitert. runningStdDev Wenn das Fenster weniger als zwei Werte enthält (das erste Dokument in jeder Partition), wird $stdDevSamp zurückgegebennull.
Codebeispiele
Um ein Codebeispiel für die Verwendung des $stdDevSamp Operators anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten. Die folgenden Beispiele zeigen die Verwendung von Akkumulatoren (in$group), Ausdrücken (in$project) und Fensteroperatoren (in$setWindowFields):