【问题标题】:Computing descriptive statistics with MySQL without a GROUP BY statement在没有 GROUP BY 语句的情况下使用 MySQL 计算描述性统计信息
【发布时间】:2012-04-10 11:21:56
【问题描述】:

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

【问题讨论】:

    标签: mysql statistics


    【解决方案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)
    

    【讨论】:

    • 我的错。我对文档和尝试时收到的错误消息感到困惑。应该更加小心。
    【解决方案2】:

    您想计算所有记录的聚合吗?将它们归为一组:

    GROUP BY "1"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多