gpt4 book ai didi

mysql - mysql 中具有运行总计的字段的平均值

转载 作者:行者123 更新时间:2023-11-29 12:58:29 25 4
gpt4 key购买 nike

我目前正在使用以下 MySQL 查询来获取运行总计并根据条件返回它

SELECT id, @rn as total
FROM table
JOIN (
SELECT @rn :=0
)rn
WHERE (
@rn := @rn + amount
) > 130
ORDER BY id ASC
LIMIT 1

表格简单如下

id  | amount | rate
20 | 120 | 5.2
21 | 22 | 6.1
22 | 16 | 3.8

现在我想选择(使用上面的查询)用于添加运行总计的行的平均值或 rate 字段;即当前上面的查询将返回:

id  | total
21 | 142

但是我想回来

id  | total | avg_rate
21 | 142 | 5.65

我尝试简单地选择AVG(rate),但这总是返回所有行的平均值,而不是仅返回运行总计中的总和。

最佳答案

虽然您没有使用 SQL2012,但这可能会对您或其他人有所帮助:

DECLARE @myTable TABLE
(
Id int,
Amount decimal(18,2),
Rate decimal(18,2)
);

INSERT INTO @myTable VALUES(20, 120, 5.2)
INSERT INTO @myTable VALUES(21, 22, 6.1)
INSERT INTO @myTable VALUES(22, 16, 3.8)

select Id,
Amount,
Rate,
sum(Amount) OVER (ORDER BY Id
ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) as RunningTotal,
avg(Rate) OVER (ORDER BY Id
ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) as RunningAvg
FROM @myTable

结果如下:

Id  Amount  Rate    RunningTotal    RunningAvg
20 120.00 5.20 120.00 5.200000
21 22.00 6.10 142.00 5.650000
22 16.00 3.80 158.00 5.033333

否则,这里是 decent link解释运行总计和平均值。

关于mysql - mysql 中具有运行总计的字段的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23685401/

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