【发布时间】:2019-09-09 04:05:59
【问题描述】:
我有一列包含多个值 X,但我想计算每个值与平均值之间的差异,即 X-AVG(X)。
我试过了:
SELECT hours-AVG(hours) FROM users
但是,这只会返回一个值,即第一个值减去平均值。
如何获得每个值与这些值的平均值之间的差异的列?
【问题讨论】:
标签: sqlite average aggregate-functions
我有一列包含多个值 X,但我想计算每个值与平均值之间的差异,即 X-AVG(X)。
我试过了:
SELECT hours-AVG(hours) FROM users
但是,这只会返回一个值,即第一个值减去平均值。
如何获得每个值与这些值的平均值之间的差异的列?
【问题讨论】:
标签: sqlite average aggregate-functions
如果您使用的是 Sqlite 3.25 或更新版本,另一种方法使用 window function:
SELECT hours - avg(hours) OVER (ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
FROM users
【讨论】:
你必须从每一列中减去(SELECT AVG(hours) FROM users):
SELECT hours - (SELECT AVG(hours) FROM users) FROM users
【讨论】: