【问题标题】:Substract average from all rows in SQLite从 SQLite 中的所有行中减去平均值
【发布时间】:2019-09-09 04:05:59
【问题描述】:

我有一列包含多个值 X,但我想计算每个值与平均值之间的差异,即 X-AVG(X)。

我试过了:

    SELECT hours-AVG(hours) FROM users

但是,这只会返回一个值,即第一个值减去平均值。

如何获得每个值与这些值的平均值之间的差异的列?

【问题讨论】:

    标签: sqlite average aggregate-functions


    【解决方案1】:

    如果您使用的是 Sqlite 3.25 或更新版本,另一种方法使用 window function

    SELECT hours - avg(hours) OVER (ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
    FROM users
    

    【讨论】:

      【解决方案2】:

      你必须从每一列中减去(SELECT AVG(hours) FROM users)

      SELECT hours - (SELECT AVG(hours) FROM users) FROM users
      

      【讨论】:

        猜你喜欢
        • 2015-06-26
        • 1970-01-01
        • 2014-11-22
        • 1970-01-01
        • 2018-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-25
        相关资源
        最近更新 更多