gpt4 book ai didi

第一个值为 0 时的 SQL Server 平均值

转载 作者:搜寻专家 更新时间:2023-10-30 23:07:45 25 4
gpt4 key购买 nike

如何通过此查询获得平均值?查询工作正常,但我无法获得所有列的平均值

 INSERT INTO db_name(
AVERAGE_WEIGHT,
RUNNING_TOTAL,
ROLLING_AVERAGE)
VALUES
(onvert(real, '515,
(convert(real, '515 + (SELECT SUM(average_weight) FROM db_name)),
(SELECT AVG(average_weight) FROM db_name))

AVERAGE_WEIGHT RUNNING_TOTAL ROLLING_AVERAGE
515 NULL NULL
510 1025 515
500 1525 512.2

我的最后一列应该是 NULL、512.2、508.33 如何获得正确的值?有可能吗?

最佳答案

如果您想要滚动平均值并且正在使用 SQL Server 2012 或更高版本,只需执行以下操作:

select weight,
sum(weight) over (order by id) as running total,
avg(weight) over (order by id) as rolling average
from db_name;

这假设有一个指定行顺序的 id 列。 SQL 表本质上是无序的,因此需要一列。

请注意,您对滚动平均值的定义不是传统定义。这些值将是 515、512.5 和 508.3。以上返回这些。

如果要将这些值插入到表中,则在前面放一个insert 语句。您的查询是从同一张表中插入和读取。这似乎很奇怪。您无法通过这种方式获得累积值。

关于第一个值为 0 时的 SQL Server 平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24309957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com