2012-03-26 14 views
1

Ich habe eine Tabelle mit drei Zahlen in jedem Datensatz, einem Minimum, einem Maximum und einem beobachteten Wert. Ich möchte eine Interpolation schätzen, die den beobachteten Wert bei gegebenen Minimal- und Maximalwerten vorhersagt. Um dies zu tun, würde ich gerne einen Durchschnitt und eine Standardabweichung für die Steigung und den Achsenabschnitt für jeden Datensatz berechnen. Nach meinem Verständnis gelten die Funktionen STDDEV und AVG nur für Abfragen mit einer GROUP BY-Klausel. Meine Tabelle hat nichts, was ich gruppieren kann, es sei denn, ich mache etwas Dummes wie Gruppe, ob die Rekord-ID ungerade oder gerade ist. Gibt es eine Möglichkeit, solche deskriptiven Statistiken mit MySQL zu berechnen?Berechnung deskriptiver Statistiken mit MySQL ohne eine GROUP BY-Anweisung

Antwort

1

Sie müssen GROUP BY nicht verwenden AVG und STDDEV wie das folgende Beispiel zeigt die Verwendung:

mysql> select * from test; 
+------+------+----------+ 
| min | max | observed | 
+------+------+----------+ 
| 1 | 10 |  2 | 
| 2 | 20 |  4 | 
+------+------+----------+ 


mysql> SELECT AVG(observed) FROM test; 
+---------------+ 
| AVG(observed) | 
+---------------+ 
|  3.0000 | 
+---------------+ 
1 row in set (0.00 sec) 


mysql> SELECT STDDEV(observed) FROM test; 
+------------------+ 
| STDDEV(observed) | 
+------------------+ 
|   1.0000 | 
+------------------+ 
1 row in set (0.00 sec) 
+0

Mein schlecht. Ich war verwirrt von der Dokumentation und der Fehlermeldung, die ich bekam, als ich es versuchte. Hätte vorsichtiger sein sollen. –

0

Möchten Sie die Aggregate für alle Datensätze berechnen? steckte sie in eine Gruppe:

GROUP BY "1"