使用MySQL计算描述性统计信息而不使用GROUP BY语句

时间:2012-03-26 22:35:47

标签: mysql statistics

我有一张表,每个记录中有三个数字,最小值,最大值和观察值。我想估计一个插值,它预测给定最小值和最大值的观测值。为此,我想计算每条记录的斜率和截距的平均值和标准差。我的理解是STDDEVAVG函数仅适用于具有GROUP BY子句的查询。我的表没有任何我可以分组的内容,除非我根据记录ID是奇数还是偶数做了像group这样的愚蠢的事情。有没有办法使用MySQL计算这些描述性统计数据?

2 个答案:

答案 0 :(得分:1)

您不必使用GROUP BY来使用AVGSTDDEV,如以下示例所示:

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)

答案 1 :(得分:0)

您想要计算所有记录的聚合吗?把它们分成一组:

GROUP BY "1"