我有一列带有多个值X的列,但是我想计算每个值与平均值之间的差,即X-AVG(X)。
我尝试过:
SELECT hours-AVG(hours) FROM users
但是,它仅返回一个值,即第一个值减去平均值。
如何获得一个列,其中每个值与这些值的平均值之间存在差异?
答案 0 :(得分:1)
您必须从每一列中减去(SELECT AVG(hours) FROM users)
:
SELECT hours - (SELECT AVG(hours) FROM users) FROM users
答案 1 :(得分:1)
如果您使用的是Sqlite 3.25或更高版本,另一种方法是使用window function:
SELECT hours - avg(hours) OVER (ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
FROM users